Zulip Chat Archive

Stream: new members

Topic: Where can you put the quantifier in Induction


Johannes C. Mayer (Jan 16 2022 at 19:15):

Let's assume I want to show.
∀ a, b, c, ab = ac → b = c

With induction on c I would need to show the base case:
∀ a, b, ab = a*0 → b = 0

And then show the inductive case, which I think is defined like this (this seems to be what lean is doing):

 a, b, d,
  (ab = ad  b = d) 
  (ab = a(d+1)  b = d+1)

My question is if you could also define induction such that you would need to show this instead (or would this lead to contradictions):

 d,
  ( a, b, ab = ad  b = d) 
  ( a, b, ab = a(d+1)  b = d+1)

Patrick Johnson (Jan 16 2022 at 19:30):

That's what generalizing is for: induction c generalizing a b does exactly what you want. Alternatively, you can do revert a b and then use induction.

Johannes C. Mayer (Jan 16 2022 at 19:55):

Thanks, I think I get it now. Induction is defined like I thought and generalizing it like you said, actually changes completely the meaning of the induction hypothesis.

Kwame Porter Robinson (Feb 04 2022 at 21:23):

Is that strong induction? I think you can do revert a, revert b or use induction ... generalization a b


Last updated: Dec 20 2023 at 11:08 UTC