lang_rel |
Def L-induced Equiv(x,y) == z:A*. L(z @ x)  L(z @ y)
Thm* A:Type, L:LangOver(A). L-induced Equiv A* A* Prop
|
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))
|
append |
Def as @ bs == Case of as; nil bs ; a.as' a.(as' @ bs) (recursive)
Thm* T:Type, as,bs:T*. (as @ bs) T*
|
assert |
Def b == if b True else False fi
Thm* b: . b Prop
|
decidable |
Def Dec(P) == P P
Thm* A:Prop. Dec(A) Prop
|
equiv_rel |
Def EquivRel x,y:T. E(x;y)
== Refl(T;x,y.E(x;y)) & Sym x,y:T. E(x;y) & Trans x,y:T. E(x;y)
Thm* T:Type, E:(T T Prop). (EquivRel x,y:T. E(x,y)) Prop
|
finite |
Def Fin(s) == n: , f:( n s). Bij( n; s; f)
Thm* T:Type. Fin(T) Prop
|
iff |
Def P  Q == (P  Q) & (P  Q)
Thm* A,B:Prop. (A  B) Prop
|
int_seg |
Def {i..j } == {k: | i k < j }
Thm* m,n: . {m..n } Type
|
int_upper |
Def {i...} == {j: | i j }
Thm* n: . {n...} Type
|
languages |
Def LangOver(Alph) == Alph* Prop
Thm* Alph:Type{i}. LangOver(Alph) Type{i'}
|
nat |
Def == {i: | 0 i }
Thm* Type
|
one_one_corr |
Def A ~ B == f:(A B), g:(B A). InvFuns(A; B; f; g)
Thm* A,B:Type. (A ~ B) Prop
|
lelt |
Def i j < k == i j & j < k
|
le |
Def A B == B < A
Thm* i,j: . i j Prop
|
not |
Def A == A  False
Thm* A:Prop. ( A) Prop
|
trans |
Def Trans x,y:T. E(x;y) == a,b,c:T. E(a;b)  E(b;c)  E(a;c)
Thm* T:Type, E:(T T Prop). Trans x,y:T. E(x,y) Prop
|
sym |
Def Sym x,y:T. E(x;y) == a,b:T. E(a;b)  E(b;a)
Thm* T:Type, E:(T T Prop). Sym x,y:T. E(x,y) Prop
|
refl |
Def Refl(T;x,y.E(x;y)) == a:T. E(a;a)
Thm* T:Type, E:(T T Prop). Refl(T;x,y.E(x,y)) Prop
|
biject |
Def Bij(A; B; f) == Inj(A; B; f) & Surj(A; B; f)
Thm* A,B:Type, f:(A B). Bij(A; B; f) Prop
|
rev_implies |
Def P  Q == Q  P
Thm* A,B:Prop. (A  B) Prop
|
inv_funs |
Def InvFuns(A; B; f; g) == g o f = Id & f o g = Id
Thm* A,B:Type, f:(A B), g:(B A). InvFuns(A; B; f; g) Prop
|
surject |
Def Surj(A; B; f) == b:B. a:A. f(a) = b
Thm* A,B:Type, f:(A B). Surj(A; B; f) Prop
|
inject |
Def Inj(A; B; f) == a1,a2:A. f(a1) = f(a2) B  a1 = a2
Thm* A,B:Type, f:(A B). Inj(A; B; f) Prop
|
tidentity |
Def Id == Id
Thm* A:Type. Id A A
|
compose |
Def (f o g)(x) == f(g(x))
Thm* A,B,C:Type, f:(B C), g:(A B). f o g A C
|
identity |
Def Id(x) == x
Thm* A:Type. Id A A
|