src/HOL/Hoare_Parallel/Quote_Antiquote.thy
author haftmann
Sat, 05 Jul 2014 11:01:53 +0200
changeset 57514 bdc2c6b40bf2
parent 53241 effd8fcabca2
child 58884 be4d203d35b3
permissions -rw-r--r--
prefer ac_simps collections over separate name bindings for add and mult
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13020
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     1
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     2
header {* \section{Concrete Syntax} *}
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     3
16417
9bc16273c2d4 migrated theory headers to new format
haftmann
parents: 13020
diff changeset
     4
theory Quote_Antiquote imports Main begin
13020
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     5
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     6
syntax
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     7
  "_quote"     :: "'b \<Rightarrow> ('a \<Rightarrow> 'b)"                ("(\<guillemotleft>_\<guillemotright>)" [0] 1000)
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     8
  "_antiquote" :: "('a \<Rightarrow> 'b) \<Rightarrow> 'b"                ("\<acute>_" [1000] 1000)
53241
effd8fcabca2 more symbols;
wenzelm
parents: 52143
diff changeset
     9
  "_Assert"    :: "'a \<Rightarrow> 'a set"                    ("(\<lbrace>_\<rbrace>)" [0] 1000)
13020
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    10
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    11
translations
53241
effd8fcabca2 more symbols;
wenzelm
parents: 52143
diff changeset
    12
  "\<lbrace>b\<rbrace>" \<rightharpoonup> "CONST Collect \<guillemotleft>b\<guillemotright>"
13020
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    13
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    14
parse_translation {*
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    15
  let
42284
326f57825e1a explicit structure Syntax_Trans;
wenzelm
parents: 35113
diff changeset
    16
    fun quote_tr [t] = Syntax_Trans.quote_tr @{syntax_const "_antiquote"} t
13020
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    17
      | quote_tr ts = raise TERM ("quote_tr", ts);
52143
36ffe23b25f8 syntax translations always depend on context;
wenzelm
parents: 42284
diff changeset
    18
  in [(@{syntax_const "_quote"}, K quote_tr)] end
13020
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    19
*}
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    20
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    21
end