src/HOL/List.thy
changeset 15870 4320bce5873f
parent 15868 9634b3f9d910
child 16397 c047008f88d4
equal deleted inserted replaced
15869:3aca7f05cd12 15870:4320bce5873f
   564 by (induct xs) auto
   564 by (induct xs) auto
   565 
   565 
   566 lemma rev_rev_ident [simp]: "rev (rev xs) = xs"
   566 lemma rev_rev_ident [simp]: "rev (rev xs) = xs"
   567 by (induct xs) auto
   567 by (induct xs) auto
   568 
   568 
       
   569 lemma rev_swap: "(rev xs = ys) = (xs = rev ys)"
       
   570 by auto
       
   571 
   569 lemma rev_is_Nil_conv [iff]: "(rev xs = []) = (xs = [])"
   572 lemma rev_is_Nil_conv [iff]: "(rev xs = []) = (xs = [])"
   570 by (induct xs) auto
   573 by (induct xs) auto
   571 
   574 
   572 lemma Nil_is_rev_conv [iff]: "([] = rev xs) = (xs = [])"
   575 lemma Nil_is_rev_conv [iff]: "([] = rev xs) = (xs = [])"
   573 by (induct xs) auto
   576 by (induct xs) auto
       
   577 
       
   578 lemma rev_singleton_conv [simp]: "(rev xs = [x]) = (xs = [x])"
       
   579 by (cases xs) auto
       
   580 
       
   581 lemma singleton_rev_conv [simp]: "([x] = rev xs) = (xs = [x])"
       
   582 by (cases xs) auto
   574 
   583 
   575 lemma rev_is_rev_conv [iff]: "!!ys. (rev xs = rev ys) = (xs = ys)"
   584 lemma rev_is_rev_conv [iff]: "!!ys. (rev xs = rev ys) = (xs = ys)"
   576 apply (induct xs, force)
   585 apply (induct xs, force)
   577 apply (case_tac ys, simp, force)
   586 apply (case_tac ys, simp, force)
   578 done
   587 done