src/HOL/Statespace/StateSpaceLocale.thy
author wenzelm
Tue, 19 Jul 2016 09:55:03 +0200
changeset 63520 2803d2b8f85d
parent 63167 0909deb8059b
child 69605 a96320074298
permissions -rw-r--r--
Linux platform base-line is Ubuntu 12.04 LTS;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41959
b460124855b8 tuned headers;
wenzelm
parents: 38838
diff changeset
     1
(*  Title:      HOL/Statespace/StateSpaceLocale.thy
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     2
    Author:     Norbert Schirmer, TU Muenchen
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     3
*)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     4
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62390
diff changeset
     5
section \<open>Setup for State Space Locales \label{sec:StateSpaceLocale}\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     6
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     7
theory StateSpaceLocale imports StateFun 
46950
d0181abdbdac declare command keywords via theory header, including strict checking outside Pure;
wenzelm
parents: 45358
diff changeset
     8
keywords "statespace" :: thy_decl
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
     9
begin
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    10
48891
c0eafbd55de3 prefer ML_file over old uses;
wenzelm
parents: 46950
diff changeset
    11
ML_file "state_space.ML"
c0eafbd55de3 prefer ML_file over old uses;
wenzelm
parents: 46950
diff changeset
    12
ML_file "state_fun.ML"
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    13
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62390
diff changeset
    14
text \<open>For every type that is to be stored in a state space, an
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    15
instance of this locale is imported in order convert the abstract and
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 62390
diff changeset
    16
concrete values.\<close>
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    17
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    18
29247
95d3a82857e5 adapted statespace module to new locales;
Norbert Schirmer <norbert.schirmer@web.de>
parents: 29235
diff changeset
    19
locale project_inject =
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    20
 fixes project :: "'value \<Rightarrow> 'a"
38838
62f6ba39b3d4 modernized specifications;
wenzelm
parents: 29247
diff changeset
    21
  and inject :: "'a \<Rightarrow> 'value"
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    22
 assumes project_inject_cancel [statefun_simp]: "project (inject x) = x"
45358
4849133d7a78 tuned document;
wenzelm
parents: 41959
diff changeset
    23
begin
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    24
45358
4849133d7a78 tuned document;
wenzelm
parents: 41959
diff changeset
    25
lemma ex_project [statefun_simp]: "\<exists>v. project v = x"
4849133d7a78 tuned document;
wenzelm
parents: 41959
diff changeset
    26
proof
4849133d7a78 tuned document;
wenzelm
parents: 41959
diff changeset
    27
  show "project (inject x) = x"
4849133d7a78 tuned document;
wenzelm
parents: 41959
diff changeset
    28
    by (rule project_inject_cancel)
4849133d7a78 tuned document;
wenzelm
parents: 41959
diff changeset
    29
qed
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    30
45358
4849133d7a78 tuned document;
wenzelm
parents: 41959
diff changeset
    31
lemma project_inject_comp_id [statefun_simp]: "project \<circ> inject = id"
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    32
  by (rule ext) (simp add: project_inject_cancel)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    33
45358
4849133d7a78 tuned document;
wenzelm
parents: 41959
diff changeset
    34
lemma project_inject_comp_cancel[statefun_simp]: "f \<circ> project \<circ> inject = f"
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    35
  by (rule ext) (simp add: project_inject_cancel)
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    36
45358
4849133d7a78 tuned document;
wenzelm
parents: 41959
diff changeset
    37
end
25171
4a9c25bffc9b added Statespace library
schirmer
parents:
diff changeset
    38
62390
842917225d56 more canonical names
nipkow
parents: 58889
diff changeset
    39
end