6.3. Specialization and mutual comparability (OML / Dybkær §6)
-
PropertyKindCalculus.Specializes[complete]
Specialization Specializes E is the reflexive–transitive closure of a
direct-parent edge relation E over kind-of-property. Different E give different per-application hierarchies — the extensibility a
fixed inductive would deny.
Lean code for Definition6.3.1●1 definition
Associated Lean declarations
-
PropertyKindCalculus.Specializes[complete]
-
PropertyKindCalculus.Specializes[complete]
-
inductivedefined in PropertyKindCalculus/Specialization.leancomplete
inductive PropertyKindCalculus.Specializes (E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop) : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop
inductive PropertyKindCalculus.Specializes (E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop) : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop
Reflexive–transitive closure of a direct-parent edge relation `E`.
Constructors
PropertyKindCalculus.Specializes.refl {E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop} (a : PropertyKindCalculus.KindOfProperty) : PropertyKindCalculus.Specializes E a a
Reflexivity of the closure: every kind specializes itself.
PropertyKindCalculus.Specializes.step {E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop} {a b c : PropertyKindCalculus.KindOfProperty} : E a b → PropertyKindCalculus.Specializes E b c → PropertyKindCalculus.Specializes E a c
Prepend a direct-parent edge `E a b` to a specialization `b ⊑ c`.
An inductive with refl and step constructors; of_edge lifts a single
edge.
-
PropertyKindCalculus.Specializes.trans[complete]
Specialization is a preorder. It is reflexive (the refl constructor) and
transitive (Specializes.trans). Stating — let alone proving — an algebraic law
of the taxonomy is exactly what an OWL2 reasoner cannot do; it checks
consistency, not laws. Uses specialization.
Lean code for Theorem6.3.2●1 theorem
Associated Lean declarations
-
PropertyKindCalculus.Specializes.trans[complete]
-
PropertyKindCalculus.Specializes.trans[complete]
-
theoremdefined in PropertyKindCalculus/Specialization.leancomplete
theorem PropertyKindCalculus.Specializes.trans {E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop} {a b c : PropertyKindCalculus.KindOfProperty} (h₁ : PropertyKindCalculus.Specializes E a b) (h₂ : PropertyKindCalculus.Specializes E b c) : PropertyKindCalculus.Specializes E a c
theorem PropertyKindCalculus.Specializes.trans {E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop} {a b c : PropertyKindCalculus.KindOfProperty} (h₁ : PropertyKindCalculus.Specializes E a b) (h₂ : PropertyKindCalculus.Specializes E b c) : PropertyKindCalculus.Specializes E a c
Specialization is transitive (it is a preorder, together with `refl`).
Transitivity is by induction on the first derivation: refl returns the second
derivation, step re-applies the constructor under the inductive hypothesis.
-
PropertyKindCalculus.MutuallyComparable[complete]
Two kinds are mutually comparable iff they share a common super-kind
(\exists p,\ a \sqsubseteq p \wedge b \sqsubseteq p). This is how width and
height stay comparable as lengths while remaining distinct sub-kinds. Uses specialization.
Lean code for Definition6.3.3●1 definition
Associated Lean declarations
-
PropertyKindCalculus.MutuallyComparable[complete]
-
PropertyKindCalculus.MutuallyComparable[complete]
-
defdefined in PropertyKindCalculus/Specialization.leancomplete
def PropertyKindCalculus.MutuallyComparable (E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop) (a b : PropertyKindCalculus.KindOfProperty) : Prop
def PropertyKindCalculus.MutuallyComparable (E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop) (a b : PropertyKindCalculus.KindOfProperty) : Prop
**Dybkær §6 / VIM4 2CD 1.2** (quantities of the same kind) — two kinds are *mutually comparable* (belong to one broad kind) iff they share a common super-kind. This is how `width` and `height` remain comparable as lengths even though they are distinct sub-kinds.
An existential over a shared upper bound.
Mutual comparability is reflexive (refl) and symmetric (symm), and any
specialization induces it (of_specializes). Uses mutual comparability.
Lean code for Theorem6.3.4●1 theorem
Associated Lean declarations
-
theoremdefined in PropertyKindCalculus/Specialization.leancomplete
theorem PropertyKindCalculus.MutuallyComparable.symm {E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop} {a b : PropertyKindCalculus.KindOfProperty} (h : PropertyKindCalculus.MutuallyComparable E a b) : PropertyKindCalculus.MutuallyComparable E b a
theorem PropertyKindCalculus.MutuallyComparable.symm {E : PropertyKindCalculus.KindOfProperty → PropertyKindCalculus.KindOfProperty → Prop} {a b : PropertyKindCalculus.KindOfProperty} (h : PropertyKindCalculus.MutuallyComparable E a b) : PropertyKindCalculus.MutuallyComparable E b a
Reflexivity takes the witness a itself; symmetry swaps the two halves of the
conjunction.