Theory HOL.Alethe_Builtin_Rewrites
theory Alethe_Builtin_Rewrites
imports "Alethe_Rare_Nary_Ops"
begin
named_theorems rewrite_ite_true_cond ‹automatically_generated›
lemma [rewrite_ite_true_cond]:
fixes x::"'a::type" and y::"'a::type"
shows "NO_MATCH cvc_a (undefined x y) ⟹ (if True then x else y) = x"
by auto
named_theorems rewrite_ite_false_cond ‹automatically_generated›
lemma [rewrite_ite_false_cond]:
fixes x::"'a::type" and y::"'a::type"
shows "NO_MATCH cvc_a (undefined x y) ⟹ (if False then x else y) = y"
by auto
named_theorems rewrite_ite_not_cond ‹automatically_generated›
lemma [rewrite_ite_not_cond]:
fixes c::"bool" and x::"'a::type" and y::"'a::type"
shows "NO_MATCH cvc_a (undefined c x y) ⟹ (if ¬ c then x else y) = (if c then y else x)"
by auto
named_theorems rewrite_ite_eq_branch ‹automatically_generated›
lemma [rewrite_ite_eq_branch]:
fixes c::"bool" and x::"'a::type"
shows "NO_MATCH cvc_a (undefined c x) ⟹ (if c then x else x) = x"
by auto
named_theorems rewrite_ite_then_lookahead ‹automatically_generated›
lemma [rewrite_ite_then_lookahead]:
fixes c::"bool" and x::"'a::type" and y::"'a::type" and z::"'a::type"
shows "NO_MATCH cvc_a (undefined c x y z) ⟹ (if c then if c then x else y else z) = (if c then x else z)"
by auto
named_theorems rewrite_ite_else_lookahead ‹automatically_generated›
lemma [rewrite_ite_else_lookahead]:
fixes c::"bool" and x::"'a::type" and y::"'a::type" and z::"'a::type"
shows "NO_MATCH cvc_a (undefined c x y z) ⟹ (if c then x else if c then y else z) = (if c then x else z)"
by auto
named_theorems rewrite_ite_then_neg_lookahead ‹automatically_generated›
lemma [rewrite_ite_then_neg_lookahead]:
fixes c::"bool" and x::"'a::type" and y::"'a::type" and z::"'a::type"
shows "NO_MATCH cvc_a (undefined c x y z) ⟹ (if c then if ¬ c then x else y else z) = (if c then y else z)"
by auto
named_theorems rewrite_ite_else_neg_lookahead ‹automatically_generated›
lemma [rewrite_ite_else_neg_lookahead]:
fixes c::"bool" and x::"'a::type" and y::"'a::type" and z::"'a::type"
shows "NO_MATCH cvc_a (undefined c x y z) ⟹ (if c then x else if ¬ c then y else z) = (if c then x else y)"
by auto
end