->change_vec_change_vec #Htf
-(* cfg to obj *)
-* #tg * whd in ⊢ (%→?); >Htf
->nth_change_vec_neq [|@sym_not_eq //] >(nth_change_vec ?????? lt_cfg)
-lapply (append_l1_injective ?????? Hrs1rs2)
-[ >Hsnlen >Hrs1len >length_append >length_append >length_append >length_append
- normalize >Hsolen >Hsnlen % ] #Hrs1 <Hrs1 >reverse_append >reverse_single
- >associative_append #Htg lapply (Htg … (refl ??) Hm0) -Htg
- (* simplifying tg *)
- >nth_change_vec_neq [2:@eqb_false_to_not_eq %]
- >nth_change_vec_neq [2:@eqb_false_to_not_eq %]
-
-
+>change_vec_change_vec >append_nil #Htf
+(* exec_move *)
+cut ((sn@[cn])=rs1)
+ [@(append_l1_injective ?????? Hrs1rs2) >Hrs1len
+ >length_append >length_append normalize >Hsolen >Hsnlen % ] #Hrs1
+cut (m0::lr0=rs2) [@(append_l2_injective ?????? Hrs1rs2) >Hrs1 % ] #Hrs2
+cut (∃ll1. ll@[bar] = bar::ll1)
+ [@daemon (* ll is at the begininng of a table *)] * #ll1 #Hll
+whd in ⊢ (%→?); >Htf >nth_change_vec_neq [2:@eqb_false_to_not_eq %]
+>nth_change_vec [2:@leb_true_to_le %]
+>nth_change_vec [2:@leb_true_to_le %]
+>nth_change_vec_neq [2:@eqb_false_to_not_eq %]
+>nth_change_vec_neq [2:@eqb_false_to_not_eq %]
+>append_cons <Hrs1 >reverse_append >reverse_single
+<Hrs2 >(append_cons … bar ll) >Hll >reverse_cons
+#sem_exec_move
+lapply
+ (sem_exec_move ? m0 ?
+ (([cn]@reverse FSUnialpha sn)
+ @fn::reverse FSUnialpha (ll1@(fo::so)@[char])) lr0 … (refl ??) ????)
+ [@Hm0
+ |@daemon (* OK *)
+ |@Hbits_obj
+ |whd in ⊢ (??%?); >associative_append >associative_append
+ >associative_append %
+ |#Htb >Htb @(eq_vec … (niltape ?)) (* tape by tape *) #i #lei2
+ cases (le_to_or_lt_eq … (le_S_S_to_le …lei2))
+ [#lei1 cases (le_to_or_lt_eq … (le_S_S_to_le …lei1))
+ [#lei0 lapply(le_n_O_to_eq … (le_S_S_to_le …lei0)) #eqi <eqi
+ (* obj tape *)
+ >nth_change_vec [2:@leb_true_to_le %]
+ (* dimostrare che la tabella e' univoca
+ da cui m = m0 e nchar = cn *)
+ |(* cfg tape *) #eqi >eqi
+ >nth_change_vec_neq [2:@eqb_false_to_not_eq %]
+ >nth_change_vec [2:@leb_true_to_le %]
+ (* idem *)
+ ]
+ |(* prg tape *) #eqi >eqi
+ >nth_change_vec_neq [2:@eqb_false_to_not_eq %]
+ >nth_change_vec_neq [2:@eqb_false_to_not_eq %]
+ >Hta_prg whd in ⊢ (??%?); @eq_f @(cons_injective_r ? bar bar)
+ >Htable >Hintable >reverse_append >reverse_cons
+ >reverse_reverse >reverse_cons >reverse_reverse
+ >associative_append >associative_append >associative_append
+ >(append_cons ? bar ll) >Hll @eq_f @eq_f <Hstate_exp @eq_f
+ >Hnewstate_exp %
+ ]
+ ]
+
+
+qed.