equal
deleted
inserted
replaced
27 val non_typed_tr': (Proof.context -> term list -> term) -> |
27 val non_typed_tr': (Proof.context -> term list -> term) -> |
28 Proof.context -> typ -> term list -> term |
28 Proof.context -> typ -> term list -> term |
29 val tappl_ast_tr': Ast.ast * Ast.ast list -> Ast.ast |
29 val tappl_ast_tr': Ast.ast * Ast.ast list -> Ast.ast |
30 val appl_ast_tr': Ast.ast * Ast.ast list -> Ast.ast |
30 val appl_ast_tr': Ast.ast * Ast.ast list -> Ast.ast |
31 val applC_ast_tr': Ast.ast * Ast.ast list -> Ast.ast |
31 val applC_ast_tr': Ast.ast * Ast.ast list -> Ast.ast |
32 val eta_contract_raw: Config.raw |
|
33 val mark_bound_abs: string * typ -> term |
32 val mark_bound_abs: string * typ -> term |
34 val mark_bound_body: string * typ -> term |
33 val mark_bound_body: string * typ -> term |
35 val bound_vars: (string * typ) list -> term -> term |
34 val bound_vars: (string * typ) list -> term -> term |
36 val abs_tr': Proof.context -> term -> term |
35 val abs_tr': Proof.context -> term -> term |
37 val atomic_abs_tr': string * typ * term -> term * term |
36 val atomic_abs_tr': string * typ * term -> term * term |
295 else incr_boundvars ~1 f |
294 else incr_boundvars ~1 f |
296 | _ => Abs (a, T, t')) |
295 | _ => Abs (a, T, t')) |
297 | t' => Abs (a, T, t')) |
296 | t' => Abs (a, T, t')) |
298 | eta_abs t = t; |
297 | eta_abs t = t; |
299 |
298 |
300 val eta_contract_raw = Config.declare_option ("eta_contract", \<^here>); |
299 val eta_contract = Config.declare_option_bool ("eta_contract", \<^here>); |
301 val eta_contract = Config.bool eta_contract_raw; |
|
302 |
300 |
303 fun eta_contr ctxt tm = |
301 fun eta_contr ctxt tm = |
304 if Config.get ctxt eta_contract then eta_abs tm else tm; |
302 if Config.get ctxt eta_contract then eta_abs tm else tm; |
305 |
303 |
306 |
304 |