src/HOL/Tools/Nitpick/nitpick_kodkod.ML
changeset 56005 7a14f831d02d
parent 53338 9fcceb3c85ae
child 57230 cac1add157e8
     1.1 --- a/src/HOL/Tools/Nitpick/nitpick_kodkod.ML	Thu Dec 05 09:23:59 2013 +0100
     1.2 +++ b/src/HOL/Tools/Nitpick/nitpick_kodkod.ML	Thu Dec 05 13:22:00 2013 +0100
     1.3 @@ -1545,16 +1545,16 @@
     1.4    |> Typ_Graph.strong_conn
     1.5    |> map (fn keys => filter (member (op =) keys o fst) nfa)
     1.6  
     1.7 -fun acyclicity_axiom_for_datatype (kk as {kk_no, kk_intersect, ...}) nfa
     1.8 -                                  start_T =
     1.9 -  kk_no (kk_intersect
    1.10 -             (loop_path_rel_expr kk nfa (pull start_T (map fst nfa)) start_T)
    1.11 -             KK.Iden)
    1.12  (* Cycle breaking in the bounds takes care of singly recursive datatypes, hence
    1.13     the first equation. *)
    1.14 -fun acyclicity_axioms_for_datatypes _ [_] = []
    1.15 -  | acyclicity_axioms_for_datatypes kk nfas =
    1.16 -    maps (fn nfa => map (acyclicity_axiom_for_datatype kk nfa o fst) nfa) nfas
    1.17 +fun acyclicity_axioms_for_datatype _ [_] _ = []
    1.18 +  | acyclicity_axioms_for_datatype (kk as {kk_no, kk_intersect, ...}) nfa
    1.19 +                                   start_T =
    1.20 +    [kk_no (kk_intersect
    1.21 +                (loop_path_rel_expr kk nfa (pull start_T (map fst nfa)) start_T)
    1.22 +                KK.Iden)]
    1.23 +fun acyclicity_axioms_for_datatypes kk =
    1.24 +  maps (fn nfa => maps (acyclicity_axioms_for_datatype kk nfa o fst) nfa)
    1.25  
    1.26  fun atom_equation_for_nut ofs kk (u, j) =
    1.27    let val dummy_u = RelReg (0, type_of u, rep_of u) in