equal
deleted
inserted
replaced
177 AppF (translate_const constant_table c, map (translate_term ctxt constant_table) args)) |
177 AppF (translate_const constant_table c, map (translate_term ctxt constant_table) args)) |
178 | _ => error ("illegal term for translation: " ^ Syntax.string_of_term ctxt t)) |
178 | _ => error ("illegal term for translation: " ^ Syntax.string_of_term ctxt t)) |
179 |
179 |
180 fun translate_literal ctxt constant_table t = |
180 fun translate_literal ctxt constant_table t = |
181 case strip_comb t of |
181 case strip_comb t of |
182 (Const (@{const_name "op ="}, _), [l, r]) => |
182 (Const (@{const_name HOL.eq}, _), [l, r]) => |
183 let |
183 let |
184 val l' = translate_term ctxt constant_table l |
184 val l' = translate_term ctxt constant_table l |
185 val r' = translate_term ctxt constant_table r |
185 val r' = translate_term ctxt constant_table r |
186 in |
186 in |
187 (if is_Var l' andalso is_arith_term r' andalso not (is_Var r') then ArithEq else Eq) (l', r') |
187 (if is_Var l' andalso is_arith_term r' andalso not (is_Var r') then ArithEq else Eq) (l', r') |