src/ZF/UNITY/GenPrefix.ML
changeset 14061 abcb32a7b212
parent 14060 c0c4af41fa3b
child 14092 68da54626309
equal deleted inserted replaced
14060:c0c4af41fa3b 14061:abcb32a7b212
   521 Goal "[| zs \\<in> list(A); xs \\<in> list(A); ys \\<in> list(A) |] \
   521 Goal "[| zs \\<in> list(A); xs \\<in> list(A); ys \\<in> list(A) |] \
   522 \  ==> <xs, zs> \\<in> prefix(A) --> <ys,zs> \\<in> prefix(A) \
   522 \  ==> <xs, zs> \\<in> prefix(A) --> <ys,zs> \\<in> prefix(A) \
   523 \ --><xs,ys> \\<in> prefix(A) | <ys,xs> \\<in> prefix(A)";
   523 \ --><xs,ys> \\<in> prefix(A) | <ys,xs> \\<in> prefix(A)";
   524 by (etac list_append_induct 1);
   524 by (etac list_append_induct 1);
   525 by Auto_tac;
   525 by Auto_tac;
   526 qed_spec_mp "common_prefix_linear";
   526 qed_spec_mp "common_prefix_linear_lemma";
       
   527 
       
   528 Goal "[|<xs, zs> \\<in> prefix(A); <ys,zs> \\<in> prefix(A) |]   \
       
   529 \     ==> <xs,ys> \\<in> prefix(A) | <ys,xs> \\<in> prefix(A)";
       
   530 by (cut_facts_tac [prefix_type] 1);
       
   531 by (blast_tac (claset() delrules [disjCI] addIs [common_prefix_linear_lemma]) 1);
       
   532 qed "common_prefix_linear";
   527 
   533 
   528 
   534 
   529 (*** pfixLe, pfixGe: properties inherited from the translations ***)
   535 (*** pfixLe, pfixGe: properties inherited from the translations ***)
   530 
   536 
   531 
   537