Content deleted Content added
→Eigenclass completion: New subsection added. |
→The primary structure: New subsection added. |
||
Line 385:
<i>member-of-instance-of</i> relation with the
<i>instance-of-instance-of</i> relation.
=== The primary structure ===
The restriction of a canonical structure of object membership
to primary objects can be expressed as a structure
<span style="white-space:nowrap"><i>(<u>O</u>.c</i>, ϵ, ≤<i>)</i></span>
where
<ul>
<li>
<i><u>O</u>.c</i> is the set of (primary) objects,
<li>
ϵ is the <em>instance-of</em> relation between (primary) objects,
<li>
≤ is the <em>inheritance</em> relation between (primary) objects.
</ul>
<em>Helix classes</em> are (primary) objects <i>x</i>
such that <i>x</i> ϵ <i>x</i>.
<em>Classes</em> are (primary) inheritance descendants of helix classes.
<em>Terminals</em> are the remaining (primary) objects.
<em>Metaclasses</em> are the [[Upper and lower bounds|lower bounds]] of helix classes, i.e. they are objects <i>x</i> such that
all helix classes are among ancestors of <i>x</i>.
<!-- -->
The structure is subject to the following axioms:
<ol style="list-style-type:none; margin-left: 2ex;">
<li style="text-indent:-3ex; margin-left:3ex;">(p~1)
(ϵ) ○ (≤) = (ϵ) = (≤) ○ (ϵ).
<li>(p~2) Inheritance ≤ is a partial order.
<li>(p~3)
Terminals have neither strict descendants nor instances.
<li style="text-indent:-3ex; margin-left:3ex;">(p~4)
Helix classes are totally ordered by inheritance, and at least two in number.
<li>(p~5) Metaclasses cannot have terminal instances.
<li>(p~6) Every object <i>x</i> has a least (primary) container,
<i>x.class</i>.
<li>(p~7) Cycles in ϵ only occur between helix classes.
<li>(p~8) The set of primary objects is finite.
</ol>
=== Eigenclass completion ===
Axiom [[#Axioms|(5)]] can be considered in the following stronger form
since it is satisfied in all mentioned programming languages (and presumably all relevant ones in general):
Line 398 ⟶ 446:
</ol>
Assuming (5'), the object membership structure,
<span style="white-space:nowrap"><i>(<u>O</u></i>, ϵ<i>)</i></span>,
is uniquely determined by the
<span style="white-space:nowrap"><i>(<u>O</u>.c</i>, ϵ, ≤<i>)</i></span>,
up to isomorphism.
(Therefore,
<span style="white-space:nowrap"><i>(<u>O</u></i>, ϵ<i>)</i></span> is also determined by
<span style="white-space:nowrap"><i>(<u>O</u>.c</i>, <i>.class</i>, ≤<i>)</i></span>.)
Given a structure
|