equal
deleted
inserted
replaced
3 Author: Amine Chaieb, TU Muenchen |
3 Author: Amine Chaieb, TU Muenchen |
4 *) |
4 *) |
5 |
5 |
6 header {* Some examples for Presburger Arithmetic *} |
6 header {* Some examples for Presburger Arithmetic *} |
7 |
7 |
8 theory PresburgerEx imports Main begin |
8 theory PresburgerEx imports Presburger begin |
|
9 |
|
10 lemma "\<And>m n ja ia. \<lbrakk>\<not> m \<le> j; \<not> n \<le> i; e \<noteq> 0; Suc j \<le> ja\<rbrakk> \<Longrightarrow> \<exists>m. \<forall>ja ia. m \<le> ja \<longrightarrow> (if j = ja \<and> i = ia then e else 0) = 0" by presburger |
|
11 lemma "(0::nat) < emBits mod 8 \<Longrightarrow> 8 + emBits div 8 * 8 - emBits = 8 - emBits mod 8" |
|
12 by presburger |
|
13 lemma "(0::nat) < emBits mod 8 \<Longrightarrow> 8 + emBits div 8 * 8 - emBits = 8 - emBits mod 8" |
|
14 by presburger |
9 |
15 |
10 theorem "(\<forall>(y::int). 3 dvd y) ==> \<forall>(x::int). b < x --> a \<le> x" |
16 theorem "(\<forall>(y::int). 3 dvd y) ==> \<forall>(x::int). b < x --> a \<le> x" |
11 by presburger |
17 by presburger |
12 |
18 |
13 theorem "!! (y::int) (z::int) (n::int). 3 dvd z ==> 2 dvd (y::int) ==> |
19 theorem "!! (y::int) (z::int) (n::int). 3 dvd z ==> 2 dvd (y::int) ==> |
39 |
45 |
40 theorem "~ (\<exists>(x::int) (y::int) (z::int). 4*x + (-6::int)*y = 1)" |
46 theorem "~ (\<exists>(x::int) (y::int) (z::int). 4*x + (-6::int)*y = 1)" |
41 by presburger |
47 by presburger |
42 |
48 |
43 theorem "\<forall>(x::int). b < x --> a \<le> x" |
49 theorem "\<forall>(x::int). b < x --> a \<le> x" |
44 apply (presburger (no_quantify)) |
50 apply (presburger elim) |
45 oops |
51 oops |
46 |
52 |
47 theorem "~ (\<exists>(x::int). False)" |
53 theorem "~ (\<exists>(x::int). False)" |
48 by presburger |
54 by presburger |
49 |
55 |
50 theorem "\<forall>(x::int). (a::int) < 3 * x --> b < 3 * x" |
56 theorem "\<forall>(x::int). (a::int) < 3 * x --> b < 3 * x" |
51 apply (presburger (no_quantify)) |
57 apply (presburger elim) |
52 oops |
58 oops |
53 |
59 |
54 theorem "\<forall>(x::int). (2 dvd x) --> (\<exists>(y::int). x = 2*y)" |
60 theorem "\<forall>(x::int). (2 dvd x) --> (\<exists>(y::int). x = 2*y)" |
55 by presburger |
61 by presburger |
56 |
62 |