diff options
| author | tslil <tslil@posteo.de> | 2026-05-06 11:21:22 +0100 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-05-06 13:35:14 +0100 |
| commit | 1b4abb8fdd81f6de2166ef3f064a77fd5622fe83 (patch) | |
| tree | 7a1bea5e296fc8607fed97d7fe82de618959fd32 /examples/equality.makkai | |
| parent | fbb8835cb73fd51e130f4e319290eeb44eadfcf5 (diff) | |
clean up examples vs tests
Diffstat (limited to 'examples/equality.makkai')
| -rw-r--r-- | examples/equality.makkai | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/examples/equality.makkai b/examples/equality.makkai index a9b3368..ede2a54 100644 --- a/examples/equality.makkai +++ b/examples/equality.makkai @@ -4,16 +4,19 @@ let element pt : Unit = {} let set Three = variant [ zero : Unit | one : Unit | two : Unit ] -let signature EqS = (x : Three) (y: Three) -> theory { E :: Set } -let instance eqThree :: EqS = for (x: Three) (y: Three), { - .E = case x of [ zero. z => case y of [ zero. w => Unit :: Set | one. w => Empty :: Set | two. w => Empty :: Set ] - | one. z => case y of [ zero. w => Empty :: Set | one. w => Unit :: Set | two. w => Empty :: Set ] - | two. z => case y of [ zero. w => Empty :: Set | one. w => Empty :: Set | two. w => Unit :: Set ] - ] +let signature SetWitRelation = theory { + Carrier :: Set, + Relation :: (x : set-of(Carrier)) (y: set-of(Carrier)) -> Set + +} +let instance eqThree :: SetWitRelation = { + .Carrier = Three :: Set, + .Relation = for (x: Three) (y: Three), + case x of [ zero. z => case y of [ zero. w => Unit :: Set | one. w => Empty :: Set | two. w => Empty :: Set ] + | one. z => case y of [ zero. w => Empty :: Set | one. w => Unit :: Set | two. w => Empty :: Set ] + | two. z => case y of [ zero. w => Empty :: Set | one. w => Empty :: Set | two. w => Unit :: Set ] ] } -let set Diagonal = record { x : Three, y : Three, equal : set-of((eqThree x y) .E) } +let set Diagonal = record { x : set-of(eqThree .Carrier), y : set-of(eqThree .Carrier), equal : set-of((eqThree .Relation) x y) } let element oneEqualsOne : Diagonal = { .x = one. pt, .y = one. pt, .equal = pt } - -let element oopsOneEqualsTwo : Diagonal = { .x = one. pt, .y = two. pt, .equal = pt } |
