Step
*
1
2
2
1
1
1
1
of Lemma
bag-decomp_wf
1. T : Type
2. b1 : T List
3. f : ℕ||b1|| ⟶ ℕ||b1||
4. Inj(ℕ||b1||;ℕ||b1||;f)
5. i : ℕ
6. i < ||b1||
⊢ remove-nth(upto(||b1||)[i];(b1 o f)) = remove-nth((upto(||b1||) o f)[i];b1) ∈ (T × bag(T))
BY
{ (Unfold `remove-nth` 0 THEN (Subst' (upto(||b1||) o f)[i] ~ f i 0 THENM (RWW "select-upto" 0⋅ THEN Auto THEN EqCD))) }
1
.....equality..... 
1. T : Type
2. b1 : T List
3. f : ℕ||b1|| ⟶ ℕ||b1||
4. Inj(ℕ||b1||;ℕ||b1||;f)
5. i : ℕ
6. i < ||b1||
⊢ (upto(||b1||) o f)[i] ~ f i
2
.....subterm..... T:t
1:n
1. T : Type
2. b1 : T List
3. f : ℕ||b1|| ⟶ ℕ||b1||
4. Inj(ℕ||b1||;ℕ||b1||;f)
5. i : ℕ
6. i < ||b1||
⊢ (b1 o f)[i] = b1[f i] ∈ T
3
.....subterm..... T:t
2:n
1. T : Type
2. b1 : T List
3. f : ℕ||b1|| ⟶ ℕ||b1||
4. Inj(ℕ||b1||;ℕ||b1||;f)
5. i : ℕ
6. i < ||b1||
⊢ (firstn(i;(b1 o f)) @ nth_tl(i + 1;(b1 o f))) = (firstn(f i;b1) @ nth_tl((f i) + 1;b1)) ∈ bag(T)
Latex:
Latex:
1.  T  :  Type
2.  b1  :  T  List
3.  f  :  \mBbbN{}||b1||  {}\mrightarrow{}  \mBbbN{}||b1||
4.  Inj(\mBbbN{}||b1||;\mBbbN{}||b1||;f)
5.  i  :  \mBbbN{}
6.  i  <  ||b1||
\mvdash{}  remove-nth(upto(||b1||)[i];(b1  o  f))  =  remove-nth((upto(||b1||)  o  f)[i];b1)
By
Latex:
(Unfold  `remove-nth`  0
  THEN  (Subst'  (upto(||b1||)  o  f)[i]  \msim{}  f  i  0  THENM  (RWW  "select-upto"  0\mcdot{}  THEN  Auto  THEN  EqCD))
  )
Home
Index