Changeset 2908 for src/Pugs/Class.hs
- Timestamp:
- 05/10/05 00:06:01 (4 years ago)
- svk:copy_cache_prev:
- 4437
- Files:
-
- 1 modified
-
src/Pugs/Class.hs (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Class.hs
r2725 r2908 50 50 multiple inheritance model. 51 51 52 ∃MetaClass A, B : A.clsSuper = B ↔ A ∈ B.clsSupClasses52 ∀ MetaClass A, B : A.clsSuper = B ↔ A ∈ B.clsSupClasses 53 53 54 54 -} … … 95 95 {- 96 96 97 ∃MetaClass A, MetaAssoc C : A.clsCats ∋ C ↔ C.catClass = A98 99 ∃MetaAssoc C₁, C₂ : C₁.catPair = C₂ ↔ C₂.catPair = C₁97 ∀ MetaClass A, MetaAssoc C : A.clsCats ∋ C ↔ C.catClass = A 98 99 ∀ MetaAssoc C₁, C₂ : C₁.catPair = C₂ ↔ C₂.catPair = C₁ 100 100 101 101 -- can't be composite both ways 102 102 103 ∃MetaAssoc C₁, C₂ : C₁.catPair = C₂ ∧ C₁.catIsComposite103 ∀ MetaAssoc C₁, C₂ : C₁.catPair = C₂ ∧ C₁.catIsComposite 104 104 → ¬(C₂.catIsComposite) 105 105 106 106 -- this seems the simplest way to specify complementary categories 107 107 108 ∃MetaAssoc C₁, C₂, MetaClass M₁, M₂108 ∀ MetaAssoc C₁, C₂, MetaClass M₁, M₂ 109 109 : C₁.catPair = C₂ ∧ C₁.catClass = M₁ ∧ C₂.catClass = M₂ 110 110 → ( ∃ M₁.clsCats{C₂.catCompanion} … … 126 126 {- 127 127 simple range sanity stuff... enforce ordering 128 ∃Range R : R[0] = One → R[1] ∈ ( One | Many )129 ∃Range R : R[1] = One → R[0] ∈ ( Zero | One )130 ∃Range R : R[0] = Many → R[1] = Many131 ∃Range R : R[1] = Zero → R[1] = Zero128 ∀ Range R : R[0] = One → R[1] ∈ ( One | Many ) 129 ∀ Range R : R[1] = One → R[0] ∈ ( Zero | One ) 130 ∀ Range R : R[0] = Many → R[1] = Many 131 ∀ Range R : R[1] = Zero → R[1] = Zero 132 132 133 133 -} … … 147 147 child member of N₁ within the tree it exists in) 148 148 149 ∃initTree Node N₁, N₂, MetaClass M₁, M₂149 ∀ initTree Node N₁, N₂, MetaClass M₁, M₂ 150 150 : N₁ ∋ N₂ ∧ N₁ = M₁.clsName ∧ N₂ = M₂.clsName 151 151 → M₁.subClasses ∋ M₂ … … 253 253 -- starting to look like the beginning again? :) 254 254 255 ∃Class C₁, C₂ : C₁.superClasses ∋ C₂255 ∀ Class C₁, C₂ : C₁.superClasses ∋ C₂ 256 256 ↔ C₂.subClasses ∋ C₁ ∧ C₂ ∉ C₁.subClasses 257 257 258 258 -- hmm, anyone know how to induct the above to disallow circular inheritance? 259 259 260 -- perhaps stating axioms here isn't the right place, anyway.261 260 -- & (reading TAPL) 262 261
