lquo_rel |
Def Rg(x,y) == z:A*. (g(z@ x))  (g(z@ y))
Thm* A:Type, R:(A* A* Prop).
(EquivRel x,y:A*. x R y) 
( x,y,z:A*. (x R y)  ((z @ x) R (z @ y))) 
( g:((x,y:A*//(x R y))  ). Rg (x,y:A*//(x R y)) (x,y:A*//(x R y)) Prop)
|
mn_quo_append |
Def z@ x == z @ x
Thm* A:Type, R:(A* A* Prop).
(EquivRel x,y:A*. x R y) 
( x,y,z:A*. (x R y)  ((z @ x) R (z @ y)))  ( z:A*, y:x,y:A*//(x R y). z@ y x,y:A*//(x R y))
|
assert |
Def b == if b True else False fi
Thm* b: . b Prop
|
iff |
Def P  Q == (P  Q) & (P  Q)
Thm* A,B:Prop. (A  B) Prop
|
append |
Def as @ bs == Case of as; nil bs ; a.as' a.(as' @ bs) (recursive)
Thm* T:Type, as,bs:T*. (as @ bs) T*
|
rev_implies |
Def P  Q == Q  P
Thm* A,B:Prop. (A  B) Prop
|