@@ -15,16 +15,35 @@ DecType {a} _ = a
1515syntax "{{" [prfname] ":" "accept" [dec] "}}" "->" [ret]
1616 = { default (decProof dec) prfname : DecType dec } -> ret
1717
18+syntax "{{" [prfname] ":" "reject" [dec] "}}" "->" [ret]
19+ = { default (decProof dec) prfname : DecType dec -> _|_ } -> ret
20+
1821
1922argsAreSame : (n:Nat) -> (m:Nat)
2023 -> {{ same : accept (decEq n m) }} -> ()
2124argsAreSame _ _ = ()
2225
26+
27+argsAreDiff : (n:Nat) -> (m:Nat)
28+ -> {{ diff : reject (decEq m n) }} -> ()
29+argsAreDiff _ _ = ()
30+
31+
2332data SameNats : Type where
2433 same : (n:Nat) -> (m:Nat) -> {{ same : accept (decEq m n) }} -> SameNats
2534
35+data DiffNats : Type where
36+ diff : (n:Nat) -> (m:Nat) -> {{ diff : reject (decEq m n) }} -> DiffNats
37+
38+
2639zArgsAreSame : ()
2740zArgsAreSame = argsAreSame Z Z
2841
42+zszArgsAreDiff : ()
43+zszArgsAreDiff = argsAreDiff Z (S Z)
44+
2945sameNatZs : SameNats
3046sameNatZs = same Z Z
47+
48+diffNatsZSZ : DiffNats
49+diffNatsZSZ = diff Z (S Z)