X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Flib%2Fturing%2Funiversal%2Ftuples.ma;h=9207b8582fafb0a47f0bf195a91ab512ad74a264;hb=df4cfc76ab059f6b3d5daf324712ad27ec281088;hp=5f743e2c81baf6c804dadc1768976fab737f2f7f;hpb=31cb2f0b374657eb5acb95708443e2c1b8481891;p=helm.git diff --git a/matita/matita/lib/turing/universal/tuples.ma b/matita/matita/lib/turing/universal/tuples.ma index 5f743e2c8..9207b8582 100644 --- a/matita/matita/lib/turing/universal/tuples.ma +++ b/matita/matita/lib/turing/universal/tuples.ma @@ -85,8 +85,6 @@ axiom match_decomp: ∀n,l,qin,cin,qout,cout,mv. (∃q.|l1| = (tuple_length (S n))*q) ∧ tuple_TM (S n) (mk_tuple qin cin qout cout mv). -axiom daemon: ∀P:Prop. P. - lemma match_to_tuples_list: ∀n,h,l,qin,cin,qout,cout,mv. match_in_table (S n) qin cin qout cout mv (flatten ? (tuples_list n h l)) → ∃p. p = mk_tuple qin cin qout cout mv ∧ mem ? p (tuples_list n h l). @@ -95,7 +93,8 @@ lemma match_to_tuples_list: ∀n,h,l,qin,cin,qout,cout,mv. cases (match_decomp … Hmatch) #l1 * #l2 * * #Hflat #Hlen #Htuple @(flatten_to_mem … Hflat … Hlen) [// - |@daemon + |#x #memx @length_of_tuple + cases (mem_map ????? memx) #t * #memt #Ht (\b (refl … b)) normalize #Hfalse destruct + |#c #tl2 whd in ⊢ ((??%%)→?); #Heq destruct #Hmema + cases (Hind l1 tl2 l4 a ??) + [#l5 * #l6 * #eql #eql4 + @(ex_intro … (b::l5)) @(ex_intro … l6) % /2/ + |@e0 + |cases (true_or_false (memb ? a tl)) [2://] + #H @False_ind @(absurd ?? not_eq_true_false) + associative_append % ] ] qed. -