equal
deleted
inserted
replaced
8 sig |
8 sig |
9 val eta_contract_default: bool Unsynchronized.ref |
9 val eta_contract_default: bool Unsynchronized.ref |
10 val eta_contract_raw: Config.raw |
10 val eta_contract_raw: Config.raw |
11 val eta_contract: bool Config.T |
11 val eta_contract: bool Config.T |
12 val atomic_abs_tr': string * typ * term -> term * term |
12 val atomic_abs_tr': string * typ * term -> term * term |
|
13 val const_abs_tr': term -> term |
13 val mk_binder_tr: string * string -> string * (term list -> term) |
14 val mk_binder_tr: string * string -> string * (term list -> term) |
14 val mk_binder_tr': string * string -> string * (term list -> term) |
15 val mk_binder_tr': string * string -> string * (term list -> term) |
15 val preserve_binder_abs_tr': string -> string -> string * (term list -> term) |
16 val preserve_binder_abs_tr': string -> string -> string * (term list -> term) |
16 val preserve_binder_abs2_tr': string -> string -> string * (term list -> term) |
17 val preserve_binder_abs2_tr': string -> string -> string * (term list -> term) |
17 val dependent_tr': string * string -> term list -> term |
18 val dependent_tr': string * string -> term list -> term |
313 |
314 |
314 fun abs_ast_tr' asts = |
315 fun abs_ast_tr' asts = |
315 (case Ast.unfold_ast_p "_abs" (Ast.Appl (Ast.Constant "_abs" :: asts)) of |
316 (case Ast.unfold_ast_p "_abs" (Ast.Appl (Ast.Constant "_abs" :: asts)) of |
316 ([], _) => raise Ast.AST ("abs_ast_tr'", asts) |
317 ([], _) => raise Ast.AST ("abs_ast_tr'", asts) |
317 | (xs, body) => Ast.Appl [Ast.Constant "_lambda", Ast.fold_ast "_pttrns" xs, body]); |
318 | (xs, body) => Ast.Appl [Ast.Constant "_lambda", Ast.fold_ast "_pttrns" xs, body]); |
|
319 |
|
320 fun const_abs_tr' t = |
|
321 (case eta_abs t of |
|
322 Abs (_, _, t') => |
|
323 if Term.is_dependent t' then raise Match |
|
324 else incr_boundvars ~1 t' |
|
325 | _ => raise Match); |
318 |
326 |
319 |
327 |
320 (* binders *) |
328 (* binders *) |
321 |
329 |
322 fun mk_binder_tr' (name, syn) = |
330 fun mk_binder_tr' (name, syn) = |