Zulip Chat Archive

Stream: new members

Topic: Problem with induction hypothesis/generalization


Marcus Rossel (Jan 10 2022 at 10:43):

Ok, I've got another one which is a bit more complicated:

inductive E
structure D where es : Nat  E
inductive C
structure B where cs : Nat  List C
structure A where bs : Nat  B

def CEquivE : C  E  Prop := sorry

def makeE {a : A} {b : B} (hb :  i, a.bs i = b) {c : C} {i} (hc : c  b.cs i) : E := sorry

example (a : A) (b : B) (hb :  i, a.bs i = b) (i : Nat) :
  List.forall₂ CEquivE (b.cs i) ((b.cs i).attach.map (makeE hb ·.property)) := by
  generalize b.cs i = x

Here I can't generalize, because tactic 'generalize' failed, result is not type correct.
Simply trying induction b.cs i has the same problem.

I'm guessing it has something to do with the fact that I'm using attach on b.cs i, but I don't know how to resolve the issue.


Last updated: Dec 20 2023 at 11:08 UTC