Attic/ProofAutomation.thy
changeset 95 a33d3040bf7e
parent 29 2345ba5b4264
equal deleted inserted replaced
94:5b01f7c233f8 95:a33d3040bf7e
       
     1 theory ProofAutomation
       
     2 imports Main
       
     3 begin
       
     4 
       
     5 lemma "\<forall>x. \<exists>y. x = y"
       
     6 by auto
       
     7 
       
     8 lemma "A \<subseteq> B \<inter> C \<Longrightarrow> A \<subseteq> B \<union> C"
       
     9 by auto
       
    10 
       
    11 lemma "\<lbrakk> \<forall> xs \<in> A. \<exists> ys. xs = ys @ ys; us \<in> A \<rbrakk> \<Longrightarrow> \<exists>n. length us = n+n"
       
    12 by fastforce
       
    13 
       
    14 lemma "\<lbrakk>xs @ ys = ys @ xs; length xs = length ys \<rbrakk> \<Longrightarrow> xs = ys"
       
    15 by auto
       
    16 
       
    17 lemma "\<lbrakk> (a::nat) \<le> x + b; 2*x < c\<rbrakk> \<Longrightarrow> 2*a + 1 \<le> 2*b + c"
       
    18 by arith
       
    19 
       
    20 lemma "\<lbrakk> (a::nat) \<le> b; b \<le> c; c \<le> d; d \<le> e \<rbrakk> \<Longrightarrow> a \<le> e"
       
    21 by (blast intro: le_trans)
       
    22 
       
    23 lemma "Suc(Suc(Suc a)) \<le> b \<Longrightarrow> a \<le> b"
       
    24 by(blast dest: Suc_leD)
       
    25 
       
    26 inductive ev :: "nat \<Rightarrow> bool" where
       
    27 ev0: "ev 0" |
       
    28 evSS: "ev n \<Longrightarrow> ev (n + 2)"
       
    29 
       
    30 fun even :: "nat \<Rightarrow> bool" where
       
    31 "even 0 = True" |
       
    32 "even (Suc 0) = False" |
       
    33 "even (Suc(Suc n)) = even n"
       
    34 
       
    35 lemma "ev m \<Longrightarrow> even m"
       
    36