src/ZF/Datatype.thy
changeset 80636 4041e7c8059d
parent 78800 0b3700d31758
equal deleted inserted replaced
80635:27d5452d20fc 80636:4041e7c8059d
    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 =