# Re: [isabelle] ML "set simp_trace": Congruence Rule question

```It is in HOL.thy: if_weak_cong.

Tobias

George Karabotsos wrote:
```
```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:
```
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:
```
```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

```
```

```

This archive was generated by a fusion of Pipermail (Mailman edition) and MHonArc.