@@ -109,7 +109,7 @@ fun mk_zinit (Init {name = n, state = s, update = upd}) ctx =
109109
110110fun mk_zop (Operation {name = n, state = s, body = OperDefn {params = ps, pre = pre, update = upd, output = ot}}) ctx =
111111 let open Syntax; open Library; open Logic; open HOLogic; open Lift_Expr
112- val pss = (map (fn (p, t) => (p, lift_expr ctx ((parse_term ctx t)))) ps)
112+ val pss = (map (fn (p, t) => (p, lift_expr ctx dummyT ((parse_term ctx t)))) ps)
113113 val pset = params_set (map snd pss)
114114 val set = SEXP $ pset
115115 val parm = dest_setT (range_type (Term.type_of (check_term ctx set)))
@@ -119,10 +119,10 @@ fun mk_zop (Operation {name = n, state = s, body = OperDefn {params = ps, pre =
119119 val ppre =
120120 lambda (free state_id)
121121 (mk_conj (const @{const_name Set.member} $ ppat $ (pset $ Bound 0 )
122- , mk_lift_expr ctx (foldr1 mk_conj ((map (parse_term ctx) pre))) $ Bound 0 ))
122+ , mk_lift_expr ctx dummyT (foldr1 mk_conj ((map (parse_term ctx) pre))) $ Bound 0 ))
123123 val poutput =
124124 lambda (free state_id)
125- ((mk_lift_expr ctx (parse_term ctx ot)) $ Bound 0 )
125+ ((mk_lift_expr ctx dummyT (parse_term ctx ot)) $ Bound 0 )
126126 val body = (
127127 (Const (@{const_name " mk_zop" }, (parm --> st --> dummyT) --> dummyT)
128128 $ tupled_lambda ppat (SEXP $ ppre))
@@ -160,22 +160,22 @@ mk_zop (Operation {name = n, state = s, body = OperProm {promop = opr, plens = l
160160 end |
161161mk_zop (Operation {name = n, state = s, body = OperComp {params = ps, pre = pre, body = bdy}}) ctx =
162162 let open Syntax; open Library; open Logic; open HOLogic; open Lift_Expr
163- val pss = (map (fn (p, t) => (p, lift_expr ctx ((parse_term ctx t)))) ps)
163+ val pss = (map (fn (p, t) => (p, lift_expr ctx dummyT ((parse_term ctx t)))) ps)
164164 val pset = params_set (map snd pss)
165165 val set = SEXP $ pset
166166 val parm = dest_setT (range_type (Term.type_of (check_term ctx set)))
167167 val st = read_typ ctx s
168168 val ppat = mk_tuple (map (free o fst) pss)
169169 val ppre =
170170 lambda (free state_id)
171- (mk_lift_expr ctx (foldr1 mk_conj ((map (parse_term ctx) pre))) $ Bound 0 )
171+ (mk_lift_expr ctx dummyT (foldr1 mk_conj ((map (parse_term ctx) pre))) $ Bound 0 )
172172 val body = tupled_lambda ppat (Type.constraint (st --> dummyT) (parse_term ctx bdy))
173173 in def_zop n set st body ctx
174174 |> gen (zop_pre n) (parm --> st --> dummyT) (tupled_lambda ppat (SEXP $ ppre))
175175 end |
176176mk_zop (Operation {name = n, state = s, body = OperEmit {emit = e}}) ctx =
177177 let open Syntax; open HOLogic; open Lift_Expr
178- val set = mk_lift_expr ctx (mk_set dummyT [parse_term ctx e])
178+ val set = mk_lift_expr ctx dummyT (mk_set dummyT [parse_term ctx e])
179179 val st = read_typ ctx s
180180 val parm = dest_setT (range_type (Term.type_of (check_term ctx set)))
181181 val body = const @{const_abbrev emit_op}
@@ -185,7 +185,7 @@ mk_zop (Operation {name = n, state = s, body = OperEmit {emit = e}}) ctx =
185185 end |
186186mk_zop (Operation {name = n, state = s, body = OperExt {params = ps, pre = pre, extends = extends, update = upd, output = ot}}) ctx =
187187 let open Syntax; open Library; open Logic; open HOLogic; open Lift_Expr
188- val pss = (map (fn (p, t) => (p, lift_expr ctx ((parse_term ctx t)))) ps)
188+ val pss = (map (fn (p, t) => (p, lift_expr ctx dummyT ((parse_term ctx t)))) ps)
189189 val pset = params_set (map snd pss)
190190 val set = SEXP $ pset
191191 val parm = dest_setT (range_type (Term.type_of (check_term ctx set)))
@@ -195,10 +195,10 @@ mk_zop (Operation {name = n, state = s, body = OperExt {params = ps, pre = pre,
195195 val ppre =
196196 lambda (free state_id)
197197 (mk_conj (const @{const_name Set.member} $ ppat $ (pset $ Bound 0 )
198- , mk_lift_expr ctx (foldr1 mk_conj ((map (parse_term ctx) pre))) $ Bound 0 ))
198+ , mk_lift_expr ctx dummyT (foldr1 mk_conj ((map (parse_term ctx) pre))) $ Bound 0 ))
199199 val poutput =
200200 lambda (free state_id)
201- ((mk_lift_expr ctx (parse_term ctx ot)) $ Bound 0 )
201+ ((mk_lift_expr ctx dummyT (parse_term ctx ot)) $ Bound 0 )
202202 val body = (
203203 (Const (@{const_name " extend_operation" }, (parm --> st --> dummyT) --> dummyT)
204204 $ tupled_lambda ppat (SEXP $ ppre))
@@ -256,9 +256,9 @@ fun zmachine_sem (ZMachine {name = n, state = s, init = i, inv = inv, operations
256256 val cs = map (fn n => (firstLower n, XML.content_of (YXML.parse_body (string_of_typ ctx (get_zop_ptype n ctx))))) ops @
257257 map (fn n => (firstLower n ^ " _Out" , XML.content_of (YXML.parse_body (string_of_typ ctx (get_zop_outtype n ctx))))) ops
258258 val st = read_typ ctx s
259- val inve = mk_lift_expr ctx (parse_term ctx inv)
259+ val inve = mk_lift_expr ctx dummyT (parse_term ctx inv)
260260 val init = parse_term ctx i
261- val ends = mk_lift_expr ctx (parse_term ctx e)
261+ val ends = mk_lift_expr ctx dummyT (parse_term ctx e)
262262 in Channel_Type.compile_chantype (([], chantype_name n), cs) thy |>
263263 Named_Target.theory_init o mk_chan_show_inst (chantype_name n) ops |>
264264 Local_Theory.exit_global o zmachine_body_sem n st init inve ops ends
0 commit comments