src/HOL/BNF/Tools/bnf_wrap.ML
changeset 51743 51f1f4ba18f3
parent 51742 b5ff7393642d
child 51757 7babcb61aa5c
equal deleted inserted replaced
51742:b5ff7393642d 51743:51f1f4ba18f3
    63 val cong_attrs = @{attributes [cong]};
    63 val cong_attrs = @{attributes [cong]};
    64 val iff_attrs = @{attributes [iff]};
    64 val iff_attrs = @{attributes [iff]};
    65 val safe_elim_attrs = @{attributes [elim!]};
    65 val safe_elim_attrs = @{attributes [elim!]};
    66 val simp_attrs = @{attributes [simp]};
    66 val simp_attrs = @{attributes [simp]};
    67 
    67 
    68 val unique_disc_no_def = TrueI; (*arbitrary marker*)
       
    69 val alternate_disc_no_def = FalseE; (*arbitrary marker*)
       
    70 
       
    71 fun pad_list x n xs = xs @ replicate (n - length xs) x;
    68 fun pad_list x n xs = xs @ replicate (n - length xs) x;
    72 
    69 
    73 fun unflat_lookup eq ys zs = map (map (fn x => nth zs (find_index (curry eq x) ys)));
    70 fun unflat_lookup eq ys zs = map (map (fn x => nth zs (find_index (curry eq x) ys)));
    74 
    71 
    75 fun mk_half_pairss' _ ([], []) = []
    72 fun mk_half_pairss' _ ([], []) = []
   216 
   213 
   217     val uv_eq = mk_Trueprop_eq (u, v);
   214     val uv_eq = mk_Trueprop_eq (u, v);
   218 
   215 
   219     val exist_xs_u_eq_ctrs =
   216     val exist_xs_u_eq_ctrs =
   220       map2 (fn xctr => fn xs => list_exists_free xs (HOLogic.mk_eq (u, xctr))) xctrs xss;
   217       map2 (fn xctr => fn xs => list_exists_free xs (HOLogic.mk_eq (u, xctr))) xctrs xss;
       
   218 
       
   219     val unique_disc_no_def = TrueI; (*arbitrary marker*)
       
   220     val alternate_disc_no_def = FalseE; (*arbitrary marker*)
   221 
   221 
   222     fun alternate_disc_lhs get_udisc k =
   222     fun alternate_disc_lhs get_udisc k =
   223       HOLogic.mk_not
   223       HOLogic.mk_not
   224         (case nth disc_bindings (k - 1) of
   224         (case nth disc_bindings (k - 1) of
   225           NONE => nth exist_xs_u_eq_ctrs (k - 1)
   225           NONE => nth exist_xs_u_eq_ctrs (k - 1)