src/HOL/Statespace/StateSpaceEx.thy
author Norbert Schirmer <nschirmer@apple.com>
Tue, 26 Oct 2021 17:14:16 +0200
changeset 74594 2f28a0a758ab
parent 74588 3cc363e8bfb2
permissions -rw-r--r--
fix latex
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41959
b460124855b8 tuned headers;
wenzelm
parents: 38838
diff changeset
     1
(*  Title:      HOL/Statespace/StateSpaceEx.thy
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
     2
    Author:     Norbert Schirmer, TU Muenchen, 2007
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
     3
    Author:     Norbert Schirmer, Apple, 2021
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     4
*)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     5
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
     6
section \<open>Examples \label{sec:Examples}\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     7
theory StateSpaceEx
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     8
imports StateSpaceLocale StateSpaceSyntax
38838
62f6ba39b3d4 modernized specifications;
wenzelm
parents: 29509
diff changeset
     9
begin
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    10
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    11
(*<*)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    12
syntax
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    13
 "_statespace_updates" :: "('a \<Rightarrow> 'b) \<Rightarrow> updbinds \<Rightarrow> ('a \<Rightarrow> 'b)" ("_\<langle>_\<rangle>" [900,0] 900)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    14
(*>*)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    15
74586
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
    16
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    17
text \<open>Did you ever dream about records with multiple inheritance?
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    18
Then you should definitely have a look at statespaces. They may be
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    19
what you are dreaming of. Or at least almost \dots\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    20
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    21
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    22
text \<open>Isabelle allows to add new top-level commands to the
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    23
system. Building on the locale infrastructure, we provide a command
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    24
\<^theory_text>\<open>statespace\<close> like this:\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    25
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    26
statespace vars =
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    27
  n::nat
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    28
  b::bool
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    29
29247
95d3a82857e5 adapted statespace module to new locales;
Norbert Schirmer <norbert.schirmer@web.de>
parents: 29235
diff changeset
    30
print_locale vars_namespace
95d3a82857e5 adapted statespace module to new locales;
Norbert Schirmer <norbert.schirmer@web.de>
parents: 29235
diff changeset
    31
print_locale vars_valuetypes
95d3a82857e5 adapted statespace module to new locales;
Norbert Schirmer <norbert.schirmer@web.de>
parents: 29235
diff changeset
    32
print_locale vars
95d3a82857e5 adapted statespace module to new locales;
Norbert Schirmer <norbert.schirmer@web.de>
parents: 29235
diff changeset
    33
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    34
text \<open>\noindent This resembles a \<^theory_text>\<open>record\<close> definition, 
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    35
but introduces sophisticated locale
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
    36
infrastructure instead of HOL type schemes. The resulting context
69597
ff784d5a5bfb isabelle update -u control_cartouches;
wenzelm
parents: 63518
diff changeset
    37
postulates two distinct names \<^term>\<open>n\<close> and \<^term>\<open>b\<close> and
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    38
projection~/ injection functions that convert from abstract values to
69597
ff784d5a5bfb isabelle update -u control_cartouches;
wenzelm
parents: 63518
diff changeset
    39
\<^typ>\<open>nat\<close> and \<open>bool\<close>. The logical content of the locale is:\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    40
29509
1ff0f3f08a7b migrated class package to new locale implementation
haftmann
parents: 29248
diff changeset
    41
locale vars' =
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    42
  fixes n::'name and b::'name
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    43
  assumes "distinct [n, b]" 
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    44
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    45
  fixes project_nat::"'value \<Rightarrow> nat" and inject_nat::"nat \<Rightarrow> 'value"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    46
  assumes "\<And>n. project_nat (inject_nat n) = n" 
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    47
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    48
  fixes project_bool::"'value \<Rightarrow> bool" and inject_bool::"bool \<Rightarrow> 'value"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    49
  assumes "\<And>b. project_bool (inject_bool b) = b"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    50
 
69597
ff784d5a5bfb isabelle update -u control_cartouches;
wenzelm
parents: 63518
diff changeset
    51
text \<open>\noindent The HOL predicate \<^const>\<open>distinct\<close> describes
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    52
distinctness of all names in the context.  Locale \<open>vars'\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    53
defines the raw logical content that is defined in the state space
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    54
locale. We also maintain non-logical context information to support
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    55
the user:
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    56
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
    57
\<^item> Syntax for state lookup and updates that automatically inserts
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    58
the corresponding projection and injection functions.
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
    59
\<^item> Setup for the proof tools that exploit the distinctness
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    60
information and the cancellation of projections and injections in
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    61
deductions and simplifications.
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    62
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    63
This extra-logical information is added to the locale in form of
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    64
declarations, which associate the name of a variable to the
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    65
corresponding projection and injection functions to handle the syntax
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    66
transformations, and a link from the variable name to the
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    67
corresponding distinctness theorem. As state spaces are merged or
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    68
extended there are multiple distinctness theorems in the context. Our
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    69
declarations take care that the link always points to the strongest
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    70
distinctness assumption.  With these declarations in place, a lookup
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
    71
can be written as \<open>s\<cdot>n\<close>, which is translated to \<open>project_nat (s n)\<close>, and an 
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
    72
update as \<open>s\<langle>n := 2\<rangle>\<close>, which is translated to \<open>s(n := inject_nat 2)\<close>. 
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
    73
We can now establish the
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    74
following lemma:\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    75
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    76
lemma (in vars) foo: "s<n := 2>\<cdot>b = s\<cdot>b" by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    77
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    78
text \<open>\noindent Here the simplifier was able to refer to
69597
ff784d5a5bfb isabelle update -u control_cartouches;
wenzelm
parents: 63518
diff changeset
    79
distinctness of \<^term>\<open>b\<close> and \<^term>\<open>n\<close> to solve the equation.
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    80
The resulting lemma is also recorded in locale \<open>vars\<close> for
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    81
later use and is automatically propagated to all its interpretations.
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    82
Here is another example:\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    83
49754
acafcac41690 more explicit namespace prefix for 'statespace' -- duplicate facts;
wenzelm
parents: 45666
diff changeset
    84
statespace 'a varsX = NB: vars [n=N, b=B] + vars + x::'a
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    85
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    86
text \<open>\noindent The state space \<open>varsX\<close> imports two copies
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    87
of the state space \<open>vars\<close>, where one has the variables renamed
69597
ff784d5a5bfb isabelle update -u control_cartouches;
wenzelm
parents: 63518
diff changeset
    88
to upper-case letters, and adds another variable \<^term>\<open>x\<close> of type
ff784d5a5bfb isabelle update -u control_cartouches;
wenzelm
parents: 63518
diff changeset
    89
\<^typ>\<open>'a\<close>. This type is fixed inside the state space but may get
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    90
instantiated later on, analogous to type parameters of an ML-functor.
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    91
The distinctness assumption is now \<open>distinct [N, B, n, b, x]\<close>,
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
    92
from this we can derive both \<^term>\<open>distinct [N,B]\<close> and \<^term>\<open>distinct [n,b]\<close>,
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
    93
the distinction assumptions for the two versions of
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    94
locale \<open>vars\<close> above.  Moreover we have all necessary
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    95
projection and injection assumptions available. These assumptions
69597
ff784d5a5bfb isabelle update -u control_cartouches;
wenzelm
parents: 63518
diff changeset
    96
together allow us to establish state space \<^term>\<open>varsX\<close> as an
ff784d5a5bfb isabelle update -u control_cartouches;
wenzelm
parents: 63518
diff changeset
    97
interpretation of both instances of locale \<^term>\<open>vars\<close>. Hence we
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    98
inherit both variants of theorem \<open>foo\<close>: \<open>s\<langle>N := 2\<rangle>\<cdot>B =
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
    99
s\<cdot>B\<close> as well as \<open>s\<langle>n := 2\<rangle>\<cdot>b = s\<cdot>b\<close>. These are immediate
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   100
consequences of the locale interpretation action.
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   101
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   102
The declarations for syntax and the distinctness theorems also observe
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   103
the morphisms generated by the locale package due to the renaming
69597
ff784d5a5bfb isabelle update -u control_cartouches;
wenzelm
parents: 63518
diff changeset
   104
\<^term>\<open>n = N\<close>:\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   105
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   106
lemma (in varsX) foo: "s\<langle>N := 2\<rangle>\<cdot>x = s\<cdot>x" by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   107
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   108
text \<open>To assure scalability towards many distinct names, the
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   109
distinctness predicate is refined to operate on balanced trees. Thus
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   110
we get logarithmic certificates for the distinctness of two names by
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   111
the distinctness of the paths in the tree. Asked for the distinctness
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   112
of two names, our tool produces the paths of the variables in the tree
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
   113
(this is implemented in Isabelle/ML, outside the logic) and returns a
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
   114
certificate corresponding to the different paths. Merging state
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   115
spaces requires to prove that the combined distinctness assumption
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   116
implies the distinctness assumptions of the components.  Such a proof
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   117
is of the order $m \cdot \log n$, where $n$ and $m$ are the number of
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   118
nodes in the larger and smaller tree, respectively.\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   119
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   120
text \<open>We continue with more examples.\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   121
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   122
statespace 'a foo = 
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   123
  f::"nat\<Rightarrow>nat"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   124
  a::int
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   125
  b::nat
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   126
  c::'a
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   127
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   128
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   129
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   130
lemma (in foo) foo1: 
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   131
  shows "s\<langle>a := i\<rangle>\<cdot>a = i"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   132
  by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   133
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   134
lemma (in foo) foo2: 
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   135
  shows "(s\<langle>a:=i\<rangle>)\<cdot>a = i"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   136
  by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   137
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   138
lemma (in foo) foo3: 
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   139
  shows "(s\<langle>a:=i\<rangle>)\<cdot>b = s\<cdot>b"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   140
  by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   141
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   142
lemma (in foo) foo4: 
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   143
  shows "(s\<langle>a:=i,b:=j,c:=k,a:=x\<rangle>) = (s\<langle>b:=j,c:=k,a:=x\<rangle>)"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   144
  by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   145
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   146
statespace bar =
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   147
  b::bool
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   148
  c::string
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   149
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   150
lemma (in bar) bar1: 
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   151
  shows "(s\<langle>b:=True\<rangle>)\<cdot>c = s\<cdot>c"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   152
  by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   153
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   154
text \<open>You can define a derived state space by inheriting existing state spaces, renaming
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   155
of components if you like, and by declaring new components.
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   156
\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   157
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   158
statespace ('a,'b) loo = 'a foo + bar [b=B,c=C] +
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   159
  X::'b
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   160
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   161
lemma (in loo) loo1: 
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   162
  shows "s\<langle>a:=i\<rangle>\<cdot>B = s\<cdot>B"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   163
proof -
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   164
  thm foo1
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   165
  txt \<open>The Lemma @{thm [source] foo1} from the parent state space 
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   166
         is also available here: \begin{center}@{thm foo1}\end{center}\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   167
  have "s<a:=i>\<cdot>a = i"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   168
    by (rule foo1)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   169
  thm bar1
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   170
  txt \<open>Note the renaming of the parameters in Lemma @{thm [source] bar1}: 
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   171
         \begin{center}@{thm bar1}\end{center}\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   172
  have "s<B:=True>\<cdot>C = s\<cdot>C"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   173
    by (rule bar1)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   174
  show ?thesis
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   175
    by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   176
qed
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   177
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   178
49754
acafcac41690 more explicit namespace prefix for 'statespace' -- duplicate facts;
wenzelm
parents: 45666
diff changeset
   179
statespace 'a dup = FA: 'a foo [f=F, a=A] + 'a foo +
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   180
  x::int
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   181
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   182
lemma (in dup)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   183
 shows "s<a := i>\<cdot>x = s\<cdot>x"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   184
  by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   185
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   186
lemma (in dup)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   187
 shows "s<A := i>\<cdot>a = s\<cdot>a"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   188
  by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   189
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   190
lemma (in dup)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   191
 shows "s<A := i>\<cdot>x = s\<cdot>x"
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   192
  by simp
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   193
74586
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   194
text \<open>There were known problems with syntax-declarations. They only
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
   195
worked when the context is already completely built. This is now overcome. e.g.:\<close>
29247
95d3a82857e5 adapted statespace module to new locales;
Norbert Schirmer <norbert.schirmer@web.de>
parents: 29235
diff changeset
   196
95d3a82857e5 adapted statespace module to new locales;
Norbert Schirmer <norbert.schirmer@web.de>
parents: 29235
diff changeset
   197
locale fooX = foo +
95d3a82857e5 adapted statespace module to new locales;
Norbert Schirmer <norbert.schirmer@web.de>
parents: 29235
diff changeset
   198
 assumes "s<a:=i>\<cdot>b = k"
74586
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   199
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   200
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   201
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   202
text \<open>
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   203
We can also put statespaces side-by-side by using ordinary @{command locale} expressions 
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   204
(instead of the @{command statespace}).
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   205
\<close> 
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   206
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   207
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   208
locale side_by_side = foo + bar where b="B::'a" and c=C for B C 
29247
95d3a82857e5 adapted statespace module to new locales;
Norbert Schirmer <norbert.schirmer@web.de>
parents: 29235
diff changeset
   209
74586
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   210
context side_by_side
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   211
begin
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
   212
text \<open>Simplification within one of the statespaces works as expected.\<close>
74586
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   213
lemma "s<B := i>\<cdot>C = s\<cdot>C"
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   214
  by simp
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   215
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   216
lemma "s<a := i>\<cdot>b = s\<cdot>b"
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   217
  by simp
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   218
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
   219
text \<open>In contrast to the statespace @{locale loo} there is no 'inter' statespace distinctness 
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
   220
between the names of @{locale foo} and @{locale bar}.\<close>
74586
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   221
end
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   222
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   223
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   224
text \<open>Sharing of names in side-by-side statespaces is also possible as long as they are mapped
74594
2f28a0a758ab fix latex
Norbert Schirmer <nschirmer@apple.com>
parents: 74588
diff changeset
   225
to the same type.\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   226
74586
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   227
statespace vars1 = n::nat m::nat
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   228
statespace vars2 = n::nat k::nat
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   229
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   230
locale vars1_vars2 = vars1 + vars2
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   231
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   232
context vars1_vars2
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   233
begin
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   234
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   235
text \<open>Note that the distinctness theorem for @{locale vars1} is selected here to do the proof.\<close>
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   236
lemma "s<n := i>\<cdot>m = s\<cdot>m"
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   237
  by simp
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   238
74586
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   239
text \<open>Note that the distinctness theorem for @{locale vars2} is selected here to do the proof.\<close>
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   240
lemma "s<n := i>\<cdot>k = s\<cdot>k"
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   241
  by simp
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   242
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   243
text \<open>Still there is no inter-statespace distinctness.\<close>
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   244
lemma "s<k := i>\<cdot>m = s\<cdot>m"
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   245
  (* apply simp *)
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   246
  oops
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   247
end
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   248
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   249
statespace merge_vars1_vars2 = vars1 + vars2
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   250
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   251
context merge_vars1_vars2
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   252
begin
74588
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
   253
text \<open>When defining a statespace instead of a side-by-side locale we get the distinctness of 
3cc363e8bfb2 cleanup; add Apple reference
Norbert Schirmer <nschirmer@apple.com>
parents: 74586
diff changeset
   254
all variables.\<close>
74586
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   255
lemma "s<k := i>\<cdot>m = s\<cdot>m"
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   256
  by simp
5ac762b53119 generalized component lookup for syntax and distinctness proofs. added some tracing.
Norbert Schirmer <nschirmer@apple.com>
parents: 69597
diff changeset
   257
end
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   258
45360
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   259
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   260
subsection \<open>Benchmarks\<close>
45360
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   261
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   262
text \<open>Here are some bigger examples for benchmarking.\<close>
45360
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   263
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   264
ML \<open>
45360
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   265
  fun make_benchmark n =
63518
ae8fd6fe63a1 tuned signature;
wenzelm
parents: 63507
diff changeset
   266
    writeln (Active.sendback_markup_command
45360
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   267
      ("statespace benchmark" ^ string_of_int n ^ " =\n" ^
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   268
        (cat_lines (map (fn i => "A" ^ string_of_int i ^ "::nat") (1 upto n)))));
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62947
diff changeset
   269
\<close>
45360
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   270
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   271
text "0.2s"
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   272
statespace benchmark100 = A1::nat A2::nat A3::nat A4::nat A5::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   273
A6::nat A7::nat A8::nat A9::nat A10::nat A11::nat A12::nat A13::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   274
A14::nat A15::nat A16::nat A17::nat A18::nat A19::nat A20::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   275
A21::nat A22::nat A23::nat A24::nat A25::nat A26::nat A27::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   276
A28::nat A29::nat A30::nat A31::nat A32::nat A33::nat A34::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   277
A35::nat A36::nat A37::nat A38::nat A39::nat A40::nat A41::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   278
A42::nat A43::nat A44::nat A45::nat A46::nat A47::nat A48::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   279
A49::nat A50::nat A51::nat A52::nat A53::nat A54::nat A55::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   280
A56::nat A57::nat A58::nat A59::nat A60::nat A61::nat A62::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   281
A63::nat A64::nat A65::nat A66::nat A67::nat A68::nat A69::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   282
A70::nat A71::nat A72::nat A73::nat A74::nat A75::nat A76::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   283
A77::nat A78::nat A79::nat A80::nat A81::nat A82::nat A83::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   284
A84::nat A85::nat A86::nat A87::nat A88::nat A89::nat A90::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   285
A91::nat A92::nat A93::nat A94::nat A95::nat A96::nat A97::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   286
A98::nat A99::nat A100::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   287
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   288
text "2.4s"
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   289
statespace benchmark500 = A1::nat A2::nat A3::nat A4::nat A5::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   290
A6::nat A7::nat A8::nat A9::nat A10::nat A11::nat A12::nat A13::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   291
A14::nat A15::nat A16::nat A17::nat A18::nat A19::nat A20::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   292
A21::nat A22::nat A23::nat A24::nat A25::nat A26::nat A27::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   293
A28::nat A29::nat A30::nat A31::nat A32::nat A33::nat A34::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   294
A35::nat A36::nat A37::nat A38::nat A39::nat A40::nat A41::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   295
A42::nat A43::nat A44::nat A45::nat A46::nat A47::nat A48::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   296
A49::nat A50::nat A51::nat A52::nat A53::nat A54::nat A55::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   297
A56::nat A57::nat A58::nat A59::nat A60::nat A61::nat A62::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   298
A63::nat A64::nat A65::nat A66::nat A67::nat A68::nat A69::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   299
A70::nat A71::nat A72::nat A73::nat A74::nat A75::nat A76::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   300
A77::nat A78::nat A79::nat A80::nat A81::nat A82::nat A83::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   301
A84::nat A85::nat A86::nat A87::nat A88::nat A89::nat A90::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   302
A91::nat A92::nat A93::nat A94::nat A95::nat A96::nat A97::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   303
A98::nat A99::nat A100::nat A101::nat A102::nat A103::nat A104::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   304
A105::nat A106::nat A107::nat A108::nat A109::nat A110::nat A111::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   305
A112::nat A113::nat A114::nat A115::nat A116::nat A117::nat A118::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   306
A119::nat A120::nat A121::nat A122::nat A123::nat A124::nat A125::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   307
A126::nat A127::nat A128::nat A129::nat A130::nat A131::nat A132::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   308
A133::nat A134::nat A135::nat A136::nat A137::nat A138::nat A139::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   309
A140::nat A141::nat A142::nat A143::nat A144::nat A145::nat A146::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   310
A147::nat A148::nat A149::nat A150::nat A151::nat A152::nat A153::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   311
A154::nat A155::nat A156::nat A157::nat A158::nat A159::nat A160::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   312
A161::nat A162::nat A163::nat A164::nat A165::nat A166::nat A167::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   313
A168::nat A169::nat A170::nat A171::nat A172::nat A173::nat A174::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   314
A175::nat A176::nat A177::nat A178::nat A179::nat A180::nat A181::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   315
A182::nat A183::nat A184::nat A185::nat A186::nat A187::nat A188::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   316
A189::nat A190::nat A191::nat A192::nat A193::nat A194::nat A195::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   317
A196::nat A197::nat A198::nat A199::nat A200::nat A201::nat A202::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   318
A203::nat A204::nat A205::nat A206::nat A207::nat A208::nat A209::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   319
A210::nat A211::nat A212::nat A213::nat A214::nat A215::nat A216::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   320
A217::nat A218::nat A219::nat A220::nat A221::nat A222::nat A223::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   321
A224::nat A225::nat A226::nat A227::nat A228::nat A229::nat A230::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   322
A231::nat A232::nat A233::nat A234::nat A235::nat A236::nat A237::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   323
A238::nat A239::nat A240::nat A241::nat A242::nat A243::nat A244::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   324
A245::nat A246::nat A247::nat A248::nat A249::nat A250::nat A251::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   325
A252::nat A253::nat A254::nat A255::nat A256::nat A257::nat A258::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   326
A259::nat A260::nat A261::nat A262::nat A263::nat A264::nat A265::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   327
A266::nat A267::nat A268::nat A269::nat A270::nat A271::nat A272::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   328
A273::nat A274::nat A275::nat A276::nat A277::nat A278::nat A279::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   329
A280::nat A281::nat A282::nat A283::nat A284::nat A285::nat A286::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   330
A287::nat A288::nat A289::nat A290::nat A291::nat A292::nat A293::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   331
A294::nat A295::nat A296::nat A297::nat A298::nat A299::nat A300::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   332
A301::nat A302::nat A303::nat A304::nat A305::nat A306::nat A307::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   333
A308::nat A309::nat A310::nat A311::nat A312::nat A313::nat A314::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   334
A315::nat A316::nat A317::nat A318::nat A319::nat A320::nat A321::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   335
A322::nat A323::nat A324::nat A325::nat A326::nat A327::nat A328::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   336
A329::nat A330::nat A331::nat A332::nat A333::nat A334::nat A335::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   337
A336::nat A337::nat A338::nat A339::nat A340::nat A341::nat A342::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   338
A343::nat A344::nat A345::nat A346::nat A347::nat A348::nat A349::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   339
A350::nat A351::nat A352::nat A353::nat A354::nat A355::nat A356::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   340
A357::nat A358::nat A359::nat A360::nat A361::nat A362::nat A363::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   341
A364::nat A365::nat A366::nat A367::nat A368::nat A369::nat A370::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   342
A371::nat A372::nat A373::nat A374::nat A375::nat A376::nat A377::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   343
A378::nat A379::nat A380::nat A381::nat A382::nat A383::nat A384::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   344
A385::nat A386::nat A387::nat A388::nat A389::nat A390::nat A391::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   345
A392::nat A393::nat A394::nat A395::nat A396::nat A397::nat A398::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   346
A399::nat A400::nat A401::nat A402::nat A403::nat A404::nat A405::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   347
A406::nat A407::nat A408::nat A409::nat A410::nat A411::nat A412::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   348
A413::nat A414::nat A415::nat A416::nat A417::nat A418::nat A419::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   349
A420::nat A421::nat A422::nat A423::nat A424::nat A425::nat A426::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   350
A427::nat A428::nat A429::nat A430::nat A431::nat A432::nat A433::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   351
A434::nat A435::nat A436::nat A437::nat A438::nat A439::nat A440::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   352
A441::nat A442::nat A443::nat A444::nat A445::nat A446::nat A447::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   353
A448::nat A449::nat A450::nat A451::nat A452::nat A453::nat A454::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   354
A455::nat A456::nat A457::nat A458::nat A459::nat A460::nat A461::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   355
A462::nat A463::nat A464::nat A465::nat A466::nat A467::nat A468::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   356
A469::nat A470::nat A471::nat A472::nat A473::nat A474::nat A475::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   357
A476::nat A477::nat A478::nat A479::nat A480::nat A481::nat A482::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   358
A483::nat A484::nat A485::nat A486::nat A487::nat A488::nat A489::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   359
A490::nat A491::nat A492::nat A493::nat A494::nat A495::nat A496::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   360
A497::nat A498::nat A499::nat A500::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   361
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   362
text "9.0s"
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   363
statespace benchmark1000 = A1::nat A2::nat A3::nat A4::nat A5::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   364
A6::nat A7::nat A8::nat A9::nat A10::nat A11::nat A12::nat A13::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   365
A14::nat A15::nat A16::nat A17::nat A18::nat A19::nat A20::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   366
A21::nat A22::nat A23::nat A24::nat A25::nat A26::nat A27::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   367
A28::nat A29::nat A30::nat A31::nat A32::nat A33::nat A34::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   368
A35::nat A36::nat A37::nat A38::nat A39::nat A40::nat A41::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   369
A42::nat A43::nat A44::nat A45::nat A46::nat A47::nat A48::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   370
A49::nat A50::nat A51::nat A52::nat A53::nat A54::nat A55::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   371
A56::nat A57::nat A58::nat A59::nat A60::nat A61::nat A62::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   372
A63::nat A64::nat A65::nat A66::nat A67::nat A68::nat A69::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   373
A70::nat A71::nat A72::nat A73::nat A74::nat A75::nat A76::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   374
A77::nat A78::nat A79::nat A80::nat A81::nat A82::nat A83::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   375
A84::nat A85::nat A86::nat A87::nat A88::nat A89::nat A90::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   376
A91::nat A92::nat A93::nat A94::nat A95::nat A96::nat A97::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   377
A98::nat A99::nat A100::nat A101::nat A102::nat A103::nat A104::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   378
A105::nat A106::nat A107::nat A108::nat A109::nat A110::nat A111::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   379
A112::nat A113::nat A114::nat A115::nat A116::nat A117::nat A118::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   380
A119::nat A120::nat A121::nat A122::nat A123::nat A124::nat A125::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   381
A126::nat A127::nat A128::nat A129::nat A130::nat A131::nat A132::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   382
A133::nat A134::nat A135::nat A136::nat A137::nat A138::nat A139::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   383
A140::nat A141::nat A142::nat A143::nat A144::nat A145::nat A146::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   384
A147::nat A148::nat A149::nat A150::nat A151::nat A152::nat A153::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   385
A154::nat A155::nat A156::nat A157::nat A158::nat A159::nat A160::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   386
A161::nat A162::nat A163::nat A164::nat A165::nat A166::nat A167::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   387
A168::nat A169::nat A170::nat A171::nat A172::nat A173::nat A174::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   388
A175::nat A176::nat A177::nat A178::nat A179::nat A180::nat A181::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   389
A182::nat A183::nat A184::nat A185::nat A186::nat A187::nat A188::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   390
A189::nat A190::nat A191::nat A192::nat A193::nat A194::nat A195::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   391
A196::nat A197::nat A198::nat A199::nat A200::nat A201::nat A202::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   392
A203::nat A204::nat A205::nat A206::nat A207::nat A208::nat A209::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   393
A210::nat A211::nat A212::nat A213::nat A214::nat A215::nat A216::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   394
A217::nat A218::nat A219::nat A220::nat A221::nat A222::nat A223::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   395
A224::nat A225::nat A226::nat A227::nat A228::nat A229::nat A230::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   396
A231::nat A232::nat A233::nat A234::nat A235::nat A236::nat A237::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   397
A238::nat A239::nat A240::nat A241::nat A242::nat A243::nat A244::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   398
A245::nat A246::nat A247::nat A248::nat A249::nat A250::nat A251::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   399
A252::nat A253::nat A254::nat A255::nat A256::nat A257::nat A258::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   400
A259::nat A260::nat A261::nat A262::nat A263::nat A264::nat A265::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   401
A266::nat A267::nat A268::nat A269::nat A270::nat A271::nat A272::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   402
A273::nat A274::nat A275::nat A276::nat A277::nat A278::nat A279::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   403
A280::nat A281::nat A282::nat A283::nat A284::nat A285::nat A286::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   404
A287::nat A288::nat A289::nat A290::nat A291::nat A292::nat A293::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   405
A294::nat A295::nat A296::nat A297::nat A298::nat A299::nat A300::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   406
A301::nat A302::nat A303::nat A304::nat A305::nat A306::nat A307::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   407
A308::nat A309::nat A310::nat A311::nat A312::nat A313::nat A314::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   408
A315::nat A316::nat A317::nat A318::nat A319::nat A320::nat A321::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   409
A322::nat A323::nat A324::nat A325::nat A326::nat A327::nat A328::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   410
A329::nat A330::nat A331::nat A332::nat A333::nat A334::nat A335::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   411
A336::nat A337::nat A338::nat A339::nat A340::nat A341::nat A342::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   412
A343::nat A344::nat A345::nat A346::nat A347::nat A348::nat A349::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   413
A350::nat A351::nat A352::nat A353::nat A354::nat A355::nat A356::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   414
A357::nat A358::nat A359::nat A360::nat A361::nat A362::nat A363::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   415
A364::nat A365::nat A366::nat A367::nat A368::nat A369::nat A370::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   416
A371::nat A372::nat A373::nat A374::nat A375::nat A376::nat A377::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   417
A378::nat A379::nat A380::nat A381::nat A382::nat A383::nat A384::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   418
A385::nat A386::nat A387::nat A388::nat A389::nat A390::nat A391::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   419
A392::nat A393::nat A394::nat A395::nat A396::nat A397::nat A398::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   420
A399::nat A400::nat A401::nat A402::nat A403::nat A404::nat A405::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   421
A406::nat A407::nat A408::nat A409::nat A410::nat A411::nat A412::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   422
A413::nat A414::nat A415::nat A416::nat A417::nat A418::nat A419::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   423
A420::nat A421::nat A422::nat A423::nat A424::nat A425::nat A426::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   424
A427::nat A428::nat A429::nat A430::nat A431::nat A432::nat A433::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   425
A434::nat A435::nat A436::nat A437::nat A438::nat A439::nat A440::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   426
A441::nat A442::nat A443::nat A444::nat A445::nat A446::nat A447::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   427
A448::nat A449::nat A450::nat A451::nat A452::nat A453::nat A454::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   428
A455::nat A456::nat A457::nat A458::nat A459::nat A460::nat A461::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   429
A462::nat A463::nat A464::nat A465::nat A466::nat A467::nat A468::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   430
A469::nat A470::nat A471::nat A472::nat A473::nat A474::nat A475::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   431
A476::nat A477::nat A478::nat A479::nat A480::nat A481::nat A482::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   432
A483::nat A484::nat A485::nat A486::nat A487::nat A488::nat A489::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   433
A490::nat A491::nat A492::nat A493::nat A494::nat A495::nat A496::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   434
A497::nat A498::nat A499::nat A500::nat A501::nat A502::nat A503::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   435
A504::nat A505::nat A506::nat A507::nat A508::nat A509::nat A510::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   436
A511::nat A512::nat A513::nat A514::nat A515::nat A516::nat A517::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   437
A518::nat A519::nat A520::nat A521::nat A522::nat A523::nat A524::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   438
A525::nat A526::nat A527::nat A528::nat A529::nat A530::nat A531::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   439
A532::nat A533::nat A534::nat A535::nat A536::nat A537::nat A538::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   440
A539::nat A540::nat A541::nat A542::nat A543::nat A544::nat A545::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   441
A546::nat A547::nat A548::nat A549::nat A550::nat A551::nat A552::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   442
A553::nat A554::nat A555::nat A556::nat A557::nat A558::nat A559::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   443
A560::nat A561::nat A562::nat A563::nat A564::nat A565::nat A566::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   444
A567::nat A568::nat A569::nat A570::nat A571::nat A572::nat A573::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   445
A574::nat A575::nat A576::nat A577::nat A578::nat A579::nat A580::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   446
A581::nat A582::nat A583::nat A584::nat A585::nat A586::nat A587::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   447
A588::nat A589::nat A590::nat A591::nat A592::nat A593::nat A594::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   448
A595::nat A596::nat A597::nat A598::nat A599::nat A600::nat A601::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   449
A602::nat A603::nat A604::nat A605::nat A606::nat A607::nat A608::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   450
A609::nat A610::nat A611::nat A612::nat A613::nat A614::nat A615::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   451
A616::nat A617::nat A618::nat A619::nat A620::nat A621::nat A622::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   452
A623::nat A624::nat A625::nat A626::nat A627::nat A628::nat A629::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   453
A630::nat A631::nat A632::nat A633::nat A634::nat A635::nat A636::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   454
A637::nat A638::nat A639::nat A640::nat A641::nat A642::nat A643::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   455
A644::nat A645::nat A646::nat A647::nat A648::nat A649::nat A650::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   456
A651::nat A652::nat A653::nat A654::nat A655::nat A656::nat A657::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   457
A658::nat A659::nat A660::nat A661::nat A662::nat A663::nat A664::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   458
A665::nat A666::nat A667::nat A668::nat A669::nat A670::nat A671::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   459
A672::nat A673::nat A674::nat A675::nat A676::nat A677::nat A678::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   460
A679::nat A680::nat A681::nat A682::nat A683::nat A684::nat A685::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   461
A686::nat A687::nat A688::nat A689::nat A690::nat A691::nat A692::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   462
A693::nat A694::nat A695::nat A696::nat A697::nat A698::nat A699::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   463
A700::nat A701::nat A702::nat A703::nat A704::nat A705::nat A706::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   464
A707::nat A708::nat A709::nat A710::nat A711::nat A712::nat A713::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   465
A714::nat A715::nat A716::nat A717::nat A718::nat A719::nat A720::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   466
A721::nat A722::nat A723::nat A724::nat A725::nat A726::nat A727::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   467
A728::nat A729::nat A730::nat A731::nat A732::nat A733::nat A734::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   468
A735::nat A736::nat A737::nat A738::nat A739::nat A740::nat A741::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   469
A742::nat A743::nat A744::nat A745::nat A746::nat A747::nat A748::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   470
A749::nat A750::nat A751::nat A752::nat A753::nat A754::nat A755::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   471
A756::nat A757::nat A758::nat A759::nat A760::nat A761::nat A762::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   472
A763::nat A764::nat A765::nat A766::nat A767::nat A768::nat A769::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   473
A770::nat A771::nat A772::nat A773::nat A774::nat A775::nat A776::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   474
A777::nat A778::nat A779::nat A780::nat A781::nat A782::nat A783::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   475
A784::nat A785::nat A786::nat A787::nat A788::nat A789::nat A790::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   476
A791::nat A792::nat A793::nat A794::nat A795::nat A796::nat A797::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   477
A798::nat A799::nat A800::nat A801::nat A802::nat A803::nat A804::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   478
A805::nat A806::nat A807::nat A808::nat A809::nat A810::nat A811::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   479
A812::nat A813::nat A814::nat A815::nat A816::nat A817::nat A818::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   480
A819::nat A820::nat A821::nat A822::nat A823::nat A824::nat A825::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   481
A826::nat A827::nat A828::nat A829::nat A830::nat A831::nat A832::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   482
A833::nat A834::nat A835::nat A836::nat A837::nat A838::nat A839::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   483
A840::nat A841::nat A842::nat A843::nat A844::nat A845::nat A846::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   484
A847::nat A848::nat A849::nat A850::nat A851::nat A852::nat A853::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   485
A854::nat A855::nat A856::nat A857::nat A858::nat A859::nat A860::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   486
A861::nat A862::nat A863::nat A864::nat A865::nat A866::nat A867::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   487
A868::nat A869::nat A870::nat A871::nat A872::nat A873::nat A874::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   488
A875::nat A876::nat A877::nat A878::nat A879::nat A880::nat A881::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   489
A882::nat A883::nat A884::nat A885::nat A886::nat A887::nat A888::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   490
A889::nat A890::nat A891::nat A892::nat A893::nat A894::nat A895::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   491
A896::nat A897::nat A898::nat A899::nat A900::nat A901::nat A902::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   492
A903::nat A904::nat A905::nat A906::nat A907::nat A908::nat A909::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   493
A910::nat A911::nat A912::nat A913::nat A914::nat A915::nat A916::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   494
A917::nat A918::nat A919::nat A920::nat A921::nat A922::nat A923::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   495
A924::nat A925::nat A926::nat A927::nat A928::nat A929::nat A930::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   496
A931::nat A932::nat A933::nat A934::nat A935::nat A936::nat A937::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   497
A938::nat A939::nat A940::nat A941::nat A942::nat A943::nat A944::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   498
A945::nat A946::nat A947::nat A948::nat A949::nat A950::nat A951::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   499
A952::nat A953::nat A954::nat A955::nat A956::nat A957::nat A958::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   500
A959::nat A960::nat A961::nat A962::nat A963::nat A964::nat A965::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   501
A966::nat A967::nat A968::nat A969::nat A970::nat A971::nat A972::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   502
A973::nat A974::nat A975::nat A976::nat A977::nat A978::nat A979::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   503
A980::nat A981::nat A982::nat A983::nat A984::nat A985::nat A986::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   504
A987::nat A988::nat A989::nat A990::nat A991::nat A992::nat A993::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   505
A994::nat A995::nat A996::nat A997::nat A998::nat A999::nat A1000::nat
09bef4e1cc55 some statespace benchmarks;
wenzelm
parents: 45358
diff changeset
   506
45394
94b5016c05c3 more benchmarks;
wenzelm
parents: 45360
diff changeset
   507
lemma (in benchmark100) test: "s<A1 := a>\<cdot>A100 = s\<cdot>A100" by simp
94b5016c05c3 more benchmarks;
wenzelm
parents: 45360
diff changeset
   508
lemma (in benchmark500) test: "s<A1 := a>\<cdot>A100 = s\<cdot>A100" by simp
94b5016c05c3 more benchmarks;
wenzelm
parents: 45360
diff changeset
   509
lemma (in benchmark1000) test: "s<A1 := a>\<cdot>A100 = s\<cdot>A100" by simp
94b5016c05c3 more benchmarks;
wenzelm
parents: 45360
diff changeset
   510
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
   511
end