Step
*
2
of Lemma
bag_remove1_aux_property
1. [T] : Type
2. eq : EqDecider(T)
3. x : T
4. u : T
5. v : T List
6. ∀checked:T List
     ((∃as,bs:T List
        ((v = ((as @ [x]) @ bs) ∈ (T List))
        ∧ (bag_remove1_aux(eq;checked;x;v) = (inl ((rev(as) @ checked) @ bs)) ∈ (T List?))))
     ∨ ((¬(x ∈ v)) ∧ (bag_remove1_aux(eq;checked;x;v) = (inr ⋅ ) ∈ (T List?))))
7. checked : T List
8. u = x ∈ T
⊢ (∃as,bs:T List
    (([u / v] = ((as @ [x]) @ bs) ∈ (T List)) ∧ ((inl (checked @ v)) = (inl ((rev(as) @ checked) @ bs)) ∈ (T List?))))
∨ ((¬(x ∈ [u / v])) ∧ ((inl (checked @ v)) = (inr ⋅ ) ∈ (T List?)))
BY
{ ((OrLeft THEN Auto) THEN (InstConcl [⌜[]⌝;⌜v⌝]⋅ THEN Auto) THEN Reduce 0 THEN Auto) }
Latex:
Latex:
1.  [T]  :  Type
2.  eq  :  EqDecider(T)
3.  x  :  T
4.  u  :  T
5.  v  :  T  List
6.  \mforall{}checked:T  List
          ((\mexists{}as,bs:T  List
                ((v  =  ((as  @  [x])  @  bs))
                \mwedge{}  (bag\_remove1\_aux(eq;checked;x;v)  =  (inl  ((rev(as)  @  checked)  @  bs)))))
          \mvee{}  ((\mneg{}(x  \mmember{}  v))  \mwedge{}  (bag\_remove1\_aux(eq;checked;x;v)  =  (inr  \mcdot{}  ))))
7.  checked  :  T  List
8.  u  =  x
\mvdash{}  (\mexists{}as,bs:T  List
        (([u  /  v]  =  ((as  @  [x])  @  bs))  \mwedge{}  ((inl  (checked  @  v))  =  (inl  ((rev(as)  @  checked)  @  bs)))))
\mvee{}  ((\mneg{}(x  \mmember{}  [u  /  v]))  \mwedge{}  ((inl  (checked  @  v))  =  (inr  \mcdot{}  )))
By
Latex:
((OrLeft  THEN  Auto)  THEN  (InstConcl  [\mkleeneopen{}[]\mkleeneclose{};\mkleeneopen{}v\mkleeneclose{}]\mcdot{}  THEN  Auto)  THEN  Reduce  0  THEN  Auto)
Home
Index