{ 
[A,C,B:Type]. 
[eqa:EqDecider(A)]. 
[eqc:EqDecider(C)]. 
[r:A 
 C].
  
[f:a:A fp-> B]. 
[a:A]. 
[z:B].
    rename(r;f)(r a)?z = f(a)?z supposing Inj(A;C;r) }
{ Proof }
Definitions occuring in Statement : 
fpf-rename: rename(r;f), 
fpf-cap: f(x)?z, 
fpf: a:A fp-> B[a], 
inject: Inj(A;B;f), 
uimplies: b supposing a, 
uall:
[x:A]. B[x], 
apply: f a, 
function: x:A 
 B[x], 
universe: Type, 
equal: s = t, 
deq: EqDecider(T)
Definitions : 
member: t 
 T, 
prop:
, 
so_lambda: 
x.t[x], 
uall:
[x:A]. B[x], 
uimplies: b supposing a, 
fpf-cap: f(x)?z, 
ifthenelse: if b then t else f fi , 
all:
x:A. B[x], 
implies: P 
 Q, 
btrue: tt, 
bfalse: ff, 
exists:
x:A. B[x], 
cand: A c
 B, 
so_apply: x[s], 
bool:
, 
unit: Unit, 
iff: P 

 Q, 
and: P 
 Q, 
not:
A, 
false: False, 
inject: Inj(A;B;f), 
rev_implies: P 
 Q, 
it:
, 
guard: {T}
Lemmas : 
bool_wf, 
assert_wf, 
fpf-dom_wf, 
fpf-trivial-subtype-top, 
fpf-rename-ap, 
not_wf, 
bnot_wf, 
iff_weakening_uiff, 
eqtt_to_assert, 
uiff_transitivity, 
eqff_to_assert, 
assert_of_bnot, 
inject_wf, 
fpf_wf, 
deq_wf, 
fpf-rename_wf, 
fpf-rename-dom
\mforall{}[A,C,B:Type].  \mforall{}[eqa:EqDecider(A)].  \mforall{}[eqc:EqDecider(C)].  \mforall{}[r:A  {}\mrightarrow{}  C].  \mforall{}[f:a:A  fp->  B].  \mforall{}[a:A].
\mforall{}[z:B].
    rename(r;f)(r  a)?z  =  f(a)?z  supposing  Inj(A;C;r)
Date html generated:
2011_08_10-AM-08_04_40
Last ObjectModification:
2011_06_18-AM-08_22_43
Home
Index