Step
*
1
2
2
2
1
1
2
of Lemma
fpf-split
1. A : Type
2. eq : EqDecider(A)@i
3. B : A ⟶ Type
4. d : A List@i
5. f1 : a:{a:A| (a ∈ d)}  ⟶ B[a]@i
6. P : A ⟶ ℙ
7. dec : ∀a:A. Dec(P[a])@i
8. <d, f1> ∈ a:A fp-> B[a]
9. <filter(λa.[dec a]b;d), f1> ∈ a:A fp-> B[a]
10. <filter(λa.(¬b[dec a]b);d), f1> ∈ a:A fp-> B[a]
11. x : A@i
12. ↑x ∈b d@i
13. ↑x ∈b filter(λa.[dec a]b;d) @ filter(λa.(¬ba ∈b filter(λa.[dec a]b;d));filter(λa.(¬b[dec a]b);d))
⊢ (f1 x) = if x ∈b filter(λa.[dec a]b;d) then f1 x else f1 x fi  ∈ B[x]
BY
{ (((RWO "assert-deq-member" (-2)) THENA Auto) THEN SplitOnConclITE THEN Auto THEN EqTypeCD THEN Auto) }
Latex:
Latex:
1.  A  :  Type
2.  eq  :  EqDecider(A)@i
3.  B  :  A  {}\mrightarrow{}  Type
4.  d  :  A  List@i
5.  f1  :  a:\{a:A|  (a  \mmember{}  d)\}    {}\mrightarrow{}  B[a]@i
6.  P  :  A  {}\mrightarrow{}  \mBbbP{}
7.  dec  :  \mforall{}a:A.  Dec(P[a])@i
8.  <d,  f1>  \mmember{}  a:A  fp->  B[a]
9.  <filter(\mlambda{}a.[dec  a]\msubb{};d),  f1>  \mmember{}  a:A  fp->  B[a]
10.  <filter(\mlambda{}a.(\mneg{}\msubb{}[dec  a]\msubb{});d),  f1>  \mmember{}  a:A  fp->  B[a]
11.  x  :  A@i
12.  \muparrow{}x  \mmember{}\msubb{}  d@i
13.  \muparrow{}x  \mmember{}\msubb{}  filter(\mlambda{}a.[dec  a]\msubb{};d)
              @  filter(\mlambda{}a.(\mneg{}\msubb{}a  \mmember{}\msubb{}  filter(\mlambda{}a.[dec  a]\msubb{};d));filter(\mlambda{}a.(\mneg{}\msubb{}[dec  a]\msubb{});d))
\mvdash{}  (f1  x)  =  if  x  \mmember{}\msubb{}  filter(\mlambda{}a.[dec  a]\msubb{};d)  then  f1  x  else  f1  x  fi 
By
Latex:
(((RWO  "assert-deq-member"  (-2))  THENA  Auto)  THEN  SplitOnConclITE  THEN  Auto  THEN  EqTypeCD  THEN  Auto)
Home
Index