equal
deleted
inserted
replaced
75 in inner end |
75 in inner end |
76 |
76 |
77 val fun_rewr_cconv : subterm_position = fn rewr => CConv.fun_cconv oo rewr |
77 val fun_rewr_cconv : subterm_position = fn rewr => CConv.fun_cconv oo rewr |
78 val arg_rewr_cconv : subterm_position = fn rewr => CConv.arg_cconv oo rewr |
78 val arg_rewr_cconv : subterm_position = fn rewr => CConv.arg_cconv oo rewr |
79 val imp_rewr_cconv : subterm_position = fn rewr => CConv.concl_cconv 1 oo rewr |
79 val imp_rewr_cconv : subterm_position = fn rewr => CConv.concl_cconv 1 oo rewr |
|
80 val with_prems_rewr_cconv : subterm_position = fn rewr => CConv.with_prems_cconv ~1 oo rewr |
80 |
81 |
81 |
82 |
82 (* focus terms *) |
83 (* focus terms *) |
83 |
84 |
84 fun ft_abs ctxt (s,T) (tyenv, u, pos) = |
85 fun ft_abs ctxt (s,T) (tyenv, u, pos) = |
152 fun ft_concl ctxt (ft as (_, t, _) : focusterm) = |
153 fun ft_concl ctxt (ft as (_, t, _) : focusterm) = |
153 case t of |
154 case t of |
154 (Const (@{const_name "Pure.imp"}, _) $ _) $ _ => (ft_concl ctxt o ft_imp ctxt) ft |
155 (Const (@{const_name "Pure.imp"}, _) $ _) $ _ => (ft_concl ctxt o ft_imp ctxt) ft |
155 | _ => ft |
156 | _ => ft |
156 |
157 |
157 fun ft_assm ctxt (ft as (_, t, _) : focusterm) = |
158 fun ft_assm _ (tyenv, (Const (@{const_name "Pure.imp"}, _) $ l) $ _, pos) = |
158 case t of |
159 (tyenv, l, pos o with_prems_rewr_cconv) |
159 (Const (@{const_name "Pure.imp"}, _) $ _) $ _ => (ft_arg ctxt o ft_fun ctxt) ft |
160 | ft_assm _ (_, t, _) = raise TERM ("ft_assm", [t]) |
160 | _ => raise TERM ("ft_assm", [t]) |
|
161 |
161 |
162 fun ft_judgment ctxt (ft as (_, t, _) : focusterm) = |
162 fun ft_judgment ctxt (ft as (_, t, _) : focusterm) = |
163 if Object_Logic.is_judgment ctxt t |
163 if Object_Logic.is_judgment ctxt t |
164 then ft_arg ctxt ft |
164 then ft_arg ctxt ft |
165 else ft |
165 else ft |