From: George Karabotsos <g_karab@cs.concordia.ca>
Hello,
I am examining the simplifier's trace for the following lemma:
lemma "(if A=A then AV else if AA=BB then BV else CV) = AV"
by simp
There is a part of the trace I do not understand - specifically I am
talking about the following part:
[1]Applying congruence rule:
A = A == ?c
==> if A = A then AV else if AA = BB then BV else CV ==
if ?c then AV else if AA = BB then BV else CV
trace_simp_depth_limit exceeded!
Where did the A =A == ?c rule came from?
TIA,
George
From: Tobias Nipkow <nipkow@in.tum.de>
The premise A = A == ?c is the instantiated premise of the congruence rule
?b == ?c
==> if ?b then ?x else ?y == if ?c then ?x else ?y
This rule is used to limit simplification of if-then-else to the
if-part, in this case A=A. Once that has become True, the if-then-else
collapses and its then-part can be simplified.
Tobias
George Karabotsos wrote:
From: Tobias Nipkow <nipkow@in.tum.de>
It is in HOL.thy: if_weak_cong.
Tobias
George Karabotsos wrote:
From: George Karabotsos <g_karab@cs.concordia.ca>
Hi Tobias,
thank you for the explanation, but where does it come from? I checked
the HOL.thy theory and I did not see any such rule. Does it have a name?
George
Tobias Nipkow wrote:
From: George Karabotsos <g_karab@cs.concordia.ca>
Last question (I promise :) ). Any idea why the name is not displayed
in the trace?
George
Tobias Nipkow wrote:
Last updated: Nov 21 2024 at 12:39 UTC