Files
newt/newt/Order.newt
2024-09-29 07:17:55 -07:00

37 lines
880 B
Agda

module Order
data Nat : U where
Z : Nat
S : Nat -> Nat
plus : Nat -> Nat -> Nat
plus Z y = y
plus (S x) y = S (plus x y)
data Pair : U -> U -> U where
_,_ : {A B : U} -> A -> B -> Pair A B
infix 1 _,_
foo : Pair Nat Nat
-- vscode plugin issue: Without the space the info is rendered on Z...
foo = (Z , S Z)
-- So I was going to force a (a + b, a) =?= (3,0) unification problem
-- as an example of needing _dynamic_ pattern unification
data Eq : {A : U} -> A -> A -> U where
Refl : {A : U} -> {x : A} -> Eq x x
-- but hold up here. This doesn't solve either.
-- Oh, because I can't reduce case.
-- And the FC is useless.
-- these go into caseeval.newt test
two : Eq (plus Z (S (S Z))) (S (S Z))
two = Refl
two' : Eq (plus (S Z) (S Z)) (S (S Z))
two' = Refl {Nat} {S (S Z)}
three : Eq (plus (S Z) (S (S Z))) (plus (S (S Z)) (S Z))
three = Refl {Nat} {S (S (S Z))}