equal
deleted
inserted
replaced
84 if Config.get ctxt trace then tracing ("data_free: OLD = " ^ Syntax.string_of_term ctxt old) |
84 if Config.get ctxt trace then tracing ("data_free: OLD = " ^ Syntax.string_of_term ctxt old) |
85 else () |
85 else () |
86 val (lhs,rhs) = FOLogic.dest_eq old |
86 val (lhs,rhs) = FOLogic.dest_eq old |
87 val (lhead, largs) = strip_comb lhs |
87 val (lhead, largs) = strip_comb lhs |
88 and (rhead, rargs) = strip_comb rhs |
88 and (rhead, rargs) = strip_comb rhs |
89 val lname = #1 (dest_Const lhead) handle TERM _ => raise Match; |
89 val lname = dest_Const_name lhead handle TERM _ => raise Match; |
90 val rname = #1 (dest_Const rhead) handle TERM _ => raise Match; |
90 val rname = dest_Const_name rhead handle TERM _ => raise Match; |
91 val lcon_info = the (Symtab.lookup (ConstructorsData.get thy) lname) |
91 val lcon_info = the (Symtab.lookup (ConstructorsData.get thy) lname) |
92 handle Option.Option => raise Match; |
92 handle Option.Option => raise Match; |
93 val rcon_info = the (Symtab.lookup (ConstructorsData.get thy) rname) |
93 val rcon_info = the (Symtab.lookup (ConstructorsData.get thy) rname) |
94 handle Option.Option => raise Match; |
94 handle Option.Option => raise Match; |
95 val new = |
95 val new = |