Step
*
1
3
2
2
1
of Lemma
permutation-iff-count
1. [T] : Type
2. eq : EqDecider(T)
3. u : T
4. v : T List
5. ∀b1:T List. ((∀x:T. (||filter(eq x;v)|| = ||filter(eq x;b1)|| ∈ ℤ)) 
⇒ permutation(T;v;b1))
6. u1 : T
7. ¬(u = u1 ∈ T)
8. v1 : T List
9. (∀x:T. (||filter(eq x;[u / v])|| = ||filter(eq x;v1)|| ∈ ℤ)) 
⇒ permutation(T;[u / v];v1)
10. ∀x:T. (||filter(eq x;[u / v])|| = ||filter(eq x;[u1 / v1])|| ∈ ℤ)
11. (u ∈ v1)
12. l1 : T List
13. l2 : T List
14. v1 = (l1 @ [u] @ l2) ∈ (T List)
⊢ permutation(T;[u / v];[u1 / v1])
BY
{ (InstHyp [⌜[u1 / (l1 @ l2)]⌝] 5⋅ THEN Auto) }
1
1. T : Type
2. eq : EqDecider(T)
3. u : T
4. v : T List
5. ∀b1:T List. ((∀x:T. (||filter(eq x;v)|| = ||filter(eq x;b1)|| ∈ ℤ)) 
⇒ permutation(T;v;b1))
6. u1 : T
7. ¬(u = u1 ∈ T)
8. v1 : T List
9. (∀x:T. (||filter(eq x;[u / v])|| = ||filter(eq x;v1)|| ∈ ℤ)) 
⇒ permutation(T;[u / v];v1)
10. ∀x:T. (||filter(eq x;[u / v])|| = ||filter(eq x;[u1 / v1])|| ∈ ℤ)
11. (u ∈ v1)
12. l1 : T List
13. l2 : T List
14. v1 = (l1 @ [u] @ l2) ∈ (T List)
15. x : T
⊢ ||filter(eq x;v)|| = ||filter(eq x;[u1 / (l1 @ l2)])|| ∈ ℤ
2
1. [T] : Type
2. eq : EqDecider(T)
3. u : T
4. v : T List
5. ∀b1:T List. ((∀x:T. (||filter(eq x;v)|| = ||filter(eq x;b1)|| ∈ ℤ)) 
⇒ permutation(T;v;b1))
6. u1 : T
7. ¬(u = u1 ∈ T)
8. v1 : T List
9. (∀x:T. (||filter(eq x;[u / v])|| = ||filter(eq x;v1)|| ∈ ℤ)) 
⇒ permutation(T;[u / v];v1)
10. ∀x:T. (||filter(eq x;[u / v])|| = ||filter(eq x;[u1 / v1])|| ∈ ℤ)
11. (u ∈ v1)
12. l1 : T List
13. l2 : T List
14. v1 = (l1 @ [u] @ l2) ∈ (T List)
15. permutation(T;v;[u1 / (l1 @ l2)])
⊢ permutation(T;[u / v];[u1 / v1])
Latex:
Latex:
1.  [T]  :  Type
2.  eq  :  EqDecider(T)
3.  u  :  T
4.  v  :  T  List
5.  \mforall{}b1:T  List.  ((\mforall{}x:T.  (||filter(eq  x;v)||  =  ||filter(eq  x;b1)||))  {}\mRightarrow{}  permutation(T;v;b1))
6.  u1  :  T
7.  \mneg{}(u  =  u1)
8.  v1  :  T  List
9.  (\mforall{}x:T.  (||filter(eq  x;[u  /  v])||  =  ||filter(eq  x;v1)||))  {}\mRightarrow{}  permutation(T;[u  /  v];v1)
10.  \mforall{}x:T.  (||filter(eq  x;[u  /  v])||  =  ||filter(eq  x;[u1  /  v1])||)
11.  (u  \mmember{}  v1)
12.  l1  :  T  List
13.  l2  :  T  List
14.  v1  =  (l1  @  [u]  @  l2)
\mvdash{}  permutation(T;[u  /  v];[u1  /  v1])
By
Latex:
(InstHyp  [\mkleeneopen{}[u1  /  (l1  @  l2)]\mkleeneclose{}]  5\mcdot{}  THEN  Auto)
Home
Index