Step
*
1
2
2
2
2
1
1
1
of Lemma
fpf-split
1. [A] : Type
2. eq : EqDecider(A)
3. [B] : A ⟶ Type
4. d : A List
5. f1 : a:{a:A| (a ∈ d)}  ⟶ B[a]
6. [P] : A ⟶ ℙ
7. dec : ∀a:A. Dec(P[a])
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. <d, f1> ⊆ <filter(λa.[dec a]b;d), f1> ⊕ <filter(λa.(¬b[dec a]b);d), f1>
12. x : A
13. (x ∈ filter(λa.[dec a]b;d) @ filter(λa.(¬ba ∈b filter(λa.[dec a]b;d));filter(λa.(¬b[dec a]b);d)))
⊢ (↑x ∈b d) c∧ (if x ∈b filter(λa.[dec a]b;d) then f1 x else f1 x fi  = (f1 x) ∈ B[x])
BY
{ xxx(((RWO "member_append" (-1)) THENA Auto)
      THEN ((RWO "member_filter" (-1)) THENA (Reduce 0 THEN Auto))
      THEN Reduce 0
      THEN ((RW assert_pushdownC (-1)) THENA Auto)
      THEN ((RWO "member_filter" (-1)) THENA (Reduce 0 THEN Auto))
      THEN (Reduce (-1))
      THEN ((RW assert_pushdownC (-1)) THENA Auto))xxx }
1
1. [A] : Type
2. eq : EqDecider(A)
3. [B] : A ⟶ Type
4. d : A List
5. f1 : a:{a:A| (a ∈ d)}  ⟶ B[a]
6. [P] : A ⟶ ℙ
7. dec : ∀a:A. Dec(P[a])
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. <d, f1> ⊆ <filter(λa.[dec a]b;d), f1> ⊕ <filter(λa.(¬b[dec a]b);d), f1>
12. x : A
13. ((x ∈ d) ∧ P[x]) ∨ (((x ∈ d) ∧ (¬P[x])) ∧ (¬(x ∈ filter(λa.[dec a]b;d))))
⊢ (↑x ∈b d) c∧ (if x ∈b filter(λa.[dec a]b;d) then f1 x else f1 x fi  = (f1 x) ∈ B[x])
Latex:
Latex:
1.  [A]  :  Type
2.  eq  :  EqDecider(A)
3.  [B]  :  A  {}\mrightarrow{}  Type
4.  d  :  A  List
5.  f1  :  a:\{a:A|  (a  \mmember{}  d)\}    {}\mrightarrow{}  B[a]
6.  [P]  :  A  {}\mrightarrow{}  \mBbbP{}
7.  dec  :  \mforall{}a:A.  Dec(P[a])
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.  <d,  f1>  \msubseteq{}  <filter(\mlambda{}a.[dec  a]\msubb{};d),  f1>  \moplus{}  <filter(\mlambda{}a.(\mneg{}\msubb{}[dec  a]\msubb{});d),  f1>
12.  x  :  A
13.  (x  \mmember{}  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{}  (\muparrow{}x  \mmember{}\msubb{}  d)  c\mwedge{}  (if  x  \mmember{}\msubb{}  filter(\mlambda{}a.[dec  a]\msubb{};d)  then  f1  x  else  f1  x  fi    =  (f1  x))
By
Latex:
xxx(((RWO  "member\_append"  (-1))  THENA  Auto)
        THEN  ((RWO  "member\_filter"  (-1))  THENA  (Reduce  0  THEN  Auto))
        THEN  Reduce  0
        THEN  ((RW  assert\_pushdownC  (-1))  THENA  Auto)
        THEN  ((RWO  "member\_filter"  (-1))  THENA  (Reduce  0  THEN  Auto))
        THEN  (Reduce  (-1))
        THEN  ((RW  assert\_pushdownC  (-1))  THENA  Auto))xxx
Home
Index