{ 
[A:Type]. 
[B,C,D:A 
 Type]. 
[f:a:A fp-> B[a]]. 
[g:a:A fp-> C[a]].
  
[eq:EqDecider(A)].
    (f 
 g 
 a:A fp-> D[a]) supposing 
       ((
a:A. ((
a 
 dom(g)) 
 (C[a] 
r D[a]))) and 
       (
a:A. ((
a 
 dom(f)) 
 (B[a] 
r D[a])))) }
{ Proof }
Definitions occuring in Statement : 
fpf-join: f 
 g, 
fpf-dom: x 
 dom(f), 
fpf: a:A fp-> B[a], 
subtype_rel: A 
r B, 
assert:
b, 
uimplies: b supposing a, 
uall:
[x:A]. B[x], 
so_apply: x[s], 
all:
x:A. B[x], 
implies: P 
 Q, 
member: t 
 T, 
function: x:A 
 B[x], 
universe: Type, 
deq: EqDecider(T)
Definitions : 
uall:
[x:A]. B[x], 
fpf: a:A fp-> B[a], 
so_apply: x[s], 
uimplies: b supposing a, 
all:
x:A. B[x], 
implies: P 
 Q, 
fpf-dom: x 
 dom(f), 
member: t 
 T, 
so_lambda: 
x.t[x], 
subtype: S 
 T, 
suptype: suptype(S; T), 
prop:
, 
pi1: fst(t), 
squash:
T, 
true: True, 
sq_stable: SqStable(P), 
rev_implies: P 
 Q, 
iff: P 

 Q, 
and: P 
 Q
Lemmas : 
fpf-join_wf, 
l_member_wf, 
sq_stable__assert, 
deq-member_wf, 
assert-deq-member, 
assert_wf, 
fpf-dom_wf, 
fpf-trivial-subtype-top, 
deq_wf, 
fpf_wf
\mforall{}[A:Type].  \mforall{}[B,C,D:A  {}\mrightarrow{}  Type].  \mforall{}[f:a:A  fp->  B[a]].  \mforall{}[g:a:A  fp->  C[a]].  \mforall{}[eq:EqDecider(A)].
    (f  \moplus{}  g  \mmember{}  a:A  fp->  D[a])  supposing 
          ((\mforall{}a:A.  ((\muparrow{}a  \mmember{}  dom(g))  {}\mRightarrow{}  (C[a]  \msubseteq{}r  D[a])))  and 
          (\mforall{}a:A.  ((\muparrow{}a  \mmember{}  dom(f))  {}\mRightarrow{}  (B[a]  \msubseteq{}r  D[a]))))
Date html generated:
2011_08_10-AM-07_58_54
Last ObjectModification:
2011_06_18-AM-08_18_40
Home
Index