Step
*
of Lemma
can-apply-compose
∀[A,B,C:Type]. ∀[g:A ⟶ (B + Top)]. ∀[f:B ⟶ (C + Top)]. ∀[x:A].
{(↑can-apply(g;x)) ∧ (↑can-apply(f;do-apply(g;x)))} supposing ↑can-apply(f o g;x)
BY
{ (Auto
THEN (MoveToConcl (-1))
THEN ((RWO "can-apply-compose-sq" (0)) THENA Auto)
THEN Unfold `guard` 0
THEN AutoBoolCase ⌜can-apply(g;x)⌝⋅) }
Latex:
Latex:
\mforall{}[A,B,C:Type]. \mforall{}[g:A {}\mrightarrow{} (B + Top)]. \mforall{}[f:B {}\mrightarrow{} (C + Top)]. \mforall{}[x:A].
\{(\muparrow{}can-apply(g;x)) \mwedge{} (\muparrow{}can-apply(f;do-apply(g;x)))\} supposing \muparrow{}can-apply(f o g;x)
By
Latex:
(Auto
THEN (MoveToConcl (-1))
THEN ((RWO "can-apply-compose-sq" (0)) THENA Auto)
THEN Unfold `guard` 0
THEN AutoBoolCase \mkleeneopen{}can-apply(g;x)\mkleeneclose{}\mcdot{})
Home
Index