Step
*
of Lemma
fpf-join-ap
∀[A:Type]. ∀[B:A ─→ Type]. ∀[eq:EqDecider(A)]. ∀[f,g:a:A fp-> B[a]]. ∀[x:A].
  f ⊕ g(x) = if x ∈ dom(f) then f(x) else g(x) fi  ∈ B[x] supposing ↑x ∈ dom(f ⊕ g)
BY
{ (Auto
   THEN Unfolds ``fpf-join fpf-ap`` 0
   THEN Reduce 0
   THEN Subst ⌈(snd(f)) x ~ f(x)⌉ 0⋅
   THEN Try ((Unfold `fpf-ap` 0 THEN Trivial))
   THEN Subst ⌈(snd(g)) x ~ g(x)⌉ 0⋅
   THEN Try ((Unfold `fpf-ap` 0 THEN Trivial))
   THEN Unfold `fpf-cap` 0
   THEN Fold `member` 0
   THEN SplitOnConclITE
   THEN Auto) }
Latex:
\mforall{}[A:Type].  \mforall{}[B:A  {}\mrightarrow{}  Type].  \mforall{}[eq:EqDecider(A)].  \mforall{}[f,g:a:A  fp->  B[a]].  \mforall{}[x:A].
    f  \moplus{}  g(x)  =  if  x  \mmember{}  dom(f)  then  f(x)  else  g(x)  fi    supposing  \muparrow{}x  \mmember{}  dom(f  \moplus{}  g)
By
(Auto
  THEN  Unfolds  ``fpf-join  fpf-ap``  0
  THEN  Reduce  0
  THEN  Subst  \mkleeneopen{}(snd(f))  x  \msim{}  f(x)\mkleeneclose{}  0\mcdot{}
  THEN  Try  ((Unfold  `fpf-ap`  0  THEN  Trivial))
  THEN  Subst  \mkleeneopen{}(snd(g))  x  \msim{}  g(x)\mkleeneclose{}  0\mcdot{}
  THEN  Try  ((Unfold  `fpf-ap`  0  THEN  Trivial))
  THEN  Unfold  `fpf-cap`  0
  THEN  Fold  `member`  0
  THEN  SplitOnConclITE
  THEN  Auto)
Home
Index