add η for pairs in zero contexts
This commit is contained in:
parent
bb8d2464af
commit
ebde478adc
3 changed files with 28 additions and 12 deletions
|
@ -233,12 +233,20 @@ namespace Term
|
|||
|
||||
(E e, E f) => ignore $ Elim.compare0 defs ctx sg e f
|
||||
|
||||
(Pair {}, E _) => clashT s.loc ctx ty s t
|
||||
(E _, Pair {}) => clashT s.loc ctx ty s t
|
||||
(E e, Pair fst snd _) => eta s.loc e fst snd
|
||||
(Pair fst snd _, E f) => eta s.loc f fst snd
|
||||
|
||||
(Pair {}, t) => wrongType t.loc ctx ty t
|
||||
(E _, t) => wrongType t.loc ctx ty t
|
||||
(s, _) => wrongType s.loc ctx ty s
|
||||
where
|
||||
eta : Loc -> Elim 0 n -> Term 0 n -> Term 0 n -> Eff EqualInner ()
|
||||
eta loc e s t =
|
||||
case sg of
|
||||
SZero => do
|
||||
compare0 defs ctx sg fst (E $ Fst e e.loc) s
|
||||
compare0 defs ctx sg (sub1 snd (Ann s fst s.loc)) (E $ Snd e e.loc) t
|
||||
SOne => clashT loc ctx ty s t
|
||||
|
||||
compare0' defs ctx sg ty@(Enum {}) s t = local_ Equal $
|
||||
case (s, t) of
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue