equal
deleted
inserted
replaced
437 (not careful orelse not (is_Var t1) orelse |
437 (not careful orelse not (is_Var t1) orelse |
438 String.isPrefix val_var_prefix (fst (fst (dest_Var t1)))) then |
438 String.isPrefix val_var_prefix (fst (fst (dest_Var t1)))) then |
439 s_let Ts "l" (n + 1) dataT bool_T |
439 s_let Ts "l" (n + 1) dataT bool_T |
440 (fn t1 => |
440 (fn t1 => |
441 discriminate_value hol_ctxt x t1 :: |
441 discriminate_value hol_ctxt x t1 :: |
442 map3 (sel_eq Ts x t1) (index_seq 0 n) arg_Ts args |
442 @{map 3} (sel_eq Ts x t1) (index_seq 0 n) arg_Ts args |
443 |> foldr1 s_conj) t1 |
443 |> foldr1 s_conj) t1 |
444 else |
444 else |
445 raise SAME () |
445 raise SAME () |
446 end |
446 end |
447 | _ => raise SAME ()) |
447 | _ => raise SAME ()) |