More lemmas about lex.
authornipkow
Mon, 10 Aug 1998 11:30:12 +0200
changeset 5283 0027ddfbc831
parent 5282 80c75c862a8f
child 5284 c77e9dd9bafc
More lemmas about lex.
src/HOL/List.ML
--- a/src/HOL/List.ML	Sat Aug 08 14:12:25 1998 +0200
+++ b/src/HOL/List.ML	Mon Aug 10 11:30:12 1998 +0200
@@ -915,6 +915,30 @@
 by(Simp_tac 1);
 qed "lexico_conv";
 
+Goal "([],ys) ~: lex r";
+by(simp_tac (simpset() addsimps [lex_conv]) 1);
+qed "Nil_notin_lex";
+
+Goal "(xs,[]) ~: lex r";
+by(simp_tac (simpset() addsimps [lex_conv]) 1);
+qed "Nil2_notin_lex";
+
+AddIffs [Nil_notin_lex,Nil2_notin_lex];
+
+Goal "((x#xs,y#ys) : lex r) = \
+\     ((x,y) : r & length xs = length ys | x=y & (xs,ys) : lex r)";
+by(simp_tac (simpset() addsimps [lex_conv]) 1);
+br iffI 1;
+ by(blast_tac (claset() addIs [Cons_eq_appendI]) 2);
+by(REPEAT(eresolve_tac [conjE, exE] 1));
+by(exhaust_tac "xys" 1);
+by(Asm_full_simp_tac 1);
+by(Asm_full_simp_tac 1);
+by(Blast_tac 1);
+qed "Cons_in_lex";
+AddIffs [Cons_in_lex];
+
+
 (***
 Simplification procedure for all list equalities.
 Currently only tries to rearranges @ to see if