Theorem: Ideal.subset_union_prime'
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: suffices
  ((I : Set R) ⊆ f a ∪ f b ∪ ⋃ i ∈ (↑s : Set ι), f i) → I ≤ f a ∨ I ≤ f b ∨ ∃ i ∈ s, I ≤ f i from
  ⟨this, fun h =>
    Or.casesOn h
      (fun h =>
        Set.Subset.trans h <|
          Set.Subset.trans (Set.subset_union_left _ _) (Set.subset_union_left _ _))
      fun h =>
      Or.casesOn h
        (fun h =>
          Set.Subset.trans h <|
            Set.Subset.trans (Set.subset_union_right _ _) (Set.subset_union_left _ _))
        fun ⟨i, his, hi⟩ => by
        refine' Set.Subset.trans hi <| Set.Subset.trans _ <| Set.subset_union_right _ _;
          exact Set.subset_biUnion_of_mem (u := fun x ↦ (f x : Set R)) (Finset.mem_coe.2 his)⟩
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a b : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
⊢ (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) ↔ I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i

tactic: generalize hn : s.card = n
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a b : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
⊢ (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i

tactic: intro h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a b : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n : ℕ
hn : Finset.card s = n
⊢ (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i

tactic: induction' n with n ih generalizing a b s
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a b : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n : ℕ
hn : Finset.card s = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i

tactic: refine' Set.Subset.trans hi <| Set.Subset.trans _ <| Set.subset_union_right _ _
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a b : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
this : (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
h✝ : I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
h : I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
x✝ : ∃ i, i ∈ s ∧ I ≤ f i
i : ι
his : i ∈ s
hi : I ≤ f i
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)

tactic: exact Set.subset_biUnion_of_mem (u := fun x ↦ (f x : Set R)) (Finset.mem_coe.2 his)
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a b : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
this : (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
h✝ : I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
h : I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
x✝ : ∃ i, i ∈ s ∧ I ≤ f i
i : ι
his : i ∈ s
hi : I ≤ f i
⊢ ↑(f i) ⊆ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)

tactic: clear hp
state_before: case zero
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n : ℕ
hn✝ : Finset.card s✝ = n
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
s : Finset ι
a b : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
hn : Finset.card s = Nat.zero
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i

tactic: rw [Finset.card_eq_zero] at hn
state_before: case zero
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n : ℕ
hn✝ : Finset.card s✝ = n
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
s : Finset ι
a b : ι
hn : Finset.card s = Nat.zero
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i

tactic: subst hn
state_before: case zero
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n : ℕ
hn✝ : Finset.card s✝ = n
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
s : Finset ι
a b : ι
hn : s = ∅
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i

tactic: rw [Finset.coe_empty, Set.biUnion_empty, Set.union_empty, subset_union] at h
state_before: case zero
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n : ℕ
hn : Finset.card s = n
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
a b : ι
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑∅), ↑(f i)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ ∅ ∧ I ≤ f i

tactic: simpa only [exists_prop, Finset.not_mem_empty, false_and_iff, exists_false, or_false_iff]
state_before: case zero
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n : ℕ
hn : Finset.card s = n
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
a b : ι
h : I ≤ f a ∨ I ≤ f b
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ ∅ ∧ I ≤ f i

tactic: replace hn : ∃ (i : ι)(t : Finset ι), i ∉ t ∧ insert i t = s ∧ t.card = n :=
  Finset.card_eq_succ.1 hn
state_before: case succ
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
s : Finset ι
a b : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
hn : Finset.card s = Nat.succ n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i

tactic: rcases hn with ⟨i, t, hit, rfl, hn⟩
state_before: case succ
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
s : Finset ι
a b : ι
hp : ∀ (i : ι), i ∈ s → IsPrime (f i)
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
hn : ∃ i t, ¬i ∈ t ∧ insert i t = s ∧ Finset.card t = n
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i

tactic: replace hp : IsPrime (f i) ∧ ∀ x ∈ t, IsPrime (f x) := (t.forall_mem_insert _ _).1 hp
state_before: case succ.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
hp : ∀ (i_1 : ι), i_1 ∈ insert i t → IsPrime (f i_1)
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: by_cases Ht : ∃ j ∈ t, f j ≤ f i
state_before: case succ.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: by_cases Ha : f a ≤ f i
state_before: case neg
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: by_cases Hb : f b ≤ f i
state_before: case neg
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: by_cases Hi : I ≤ f i
state_before: case neg
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: rcases Set.not_subset.1 this with ⟨r, ⟨⟨⟨hrI, hra⟩, hrb⟩, hr⟩, hri⟩
state_before: case neg
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: by_cases HI : (I : Set R) ⊆ f a ∪ f b ∪ ⋃ j ∈ (↑t : Set ι), f j
state_before: case neg.intro.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exfalso
state_before: case neg
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: rcases Set.not_subset.1 HI with ⟨s, hsI, hs⟩
state_before: case neg.h
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
⊢ False

tactic: rw [Finset.coe_insert, Set.biUnion_insert] at h
state_before: case neg.h.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
⊢ False

tactic: have hsi : s ∈ f i := ((h hsI).resolve_left (mt Or.inl hs)).resolve_right (mt Or.inr hs)
state_before: case neg.h.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x))
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
⊢ False

tactic: rcases h (I.add_mem hrI hsI) with (⟨ha | hb⟩ | hi | ht)
state_before: case neg.h.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x))
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
hsi : s ∈ f i
⊢ False

tactic: obtain ⟨j, hjt, hfji⟩ : ∃ j ∈ t, f j ≤ f i := Ht
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ∃ j, j ∈ t ∧ f j ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: obtain ⟨u, hju, rfl⟩ : ∃ u, j ∉ u ∧ insert j u = t :=
  ⟨t.erase j, t.not_mem_erase j, Finset.insert_erase hjt⟩
state_before: case pos.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
j : ι
hjt : j ∈ t
hfji : f j ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: have hp' : ∀ k ∈ insert i u, IsPrime (f k) := by
  rw [Finset.forall_mem_insert] at hp ⊢
  exact ⟨hp.1, hp.2.2⟩
state_before: case pos.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i (insert j u) ∧ I ≤ f i_1

tactic: have hiu : i ∉ u := mt Finset.mem_insert_of_mem hit
state_before: case pos.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i (insert j u) ∧ I ≤ f i_1

tactic: have hn' : (insert i u).card = n := by
  rwa [Finset.card_insert_of_not_mem] at hn⊢
  exacts [hiu, hju]
state_before: case pos.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i (insert j u) ∧ I ≤ f i_1

tactic: have h' : (I : Set R) ⊆ f a ∪ f b ∪ ⋃ k ∈ (↑(insert i u) : Set ι), f k := by
  rw [Finset.coe_insert] at h ⊢
  rw [Finset.coe_insert] at h
  simp only [Set.biUnion_insert] at h ⊢
  rw [← Set.union_assoc (f i : Set R)] at h
  erw [Set.union_eq_self_of_subset_right hfji] at h
  exact h
state_before: case pos.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i (insert j u) ∧ I ≤ f i_1

tactic: specialize ih hp' hn' h'
state_before: case pos.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
h' : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (k : ι) (_ : k ∈ ↑(insert i u)), ↑(f k)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i (insert j u) ∧ I ≤ f i_1

tactic: refine' ih.imp id (Or.imp id (Exists.imp fun k => _))
state_before: case pos.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
h' : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (k : ι) (_ : k ∈ ↑(insert i u)), ↑(f k)
ih : I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i u ∧ I ≤ f i_1
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i (insert j u) ∧ I ≤ f i_1

tactic: simp only [exists_prop]
state_before: case pos.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
h' : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (k : ι) (_ : k ∈ ↑(insert i u)), ↑(f k)
ih : I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i u ∧ I ≤ f i_1
k : ι
⊢ k ∈ insert i u ∧ I ≤ f k → k ∈ insert i (insert j u) ∧ I ≤ f k

tactic: exact And.imp (fun hk => Finset.insert_subset_insert i (Finset.subset_insert j u) hk) id
state_before: case pos.intro.intro.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
h' : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (k : ι) (_ : k ∈ ↑(insert i u)), ↑(f k)
ih : I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i u ∧ I ≤ f i_1
k : ι
⊢ k ∈ insert i u ∧ I ≤ f k → k ∈ insert i (insert j u) ∧ I ≤ f k

tactic: rw [Finset.forall_mem_insert] at hp ⊢
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
⊢ ∀ (k : ι), k ∈ insert i u → IsPrime (f k)

tactic: exact ⟨hp.1, hp.2.2⟩
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ IsPrime (f j) ∧ ∀ (x : ι), x ∈ u → IsPrime (f x)
hjt : j ∈ insert j u
⊢ IsPrime (f i) ∧ ∀ (x : ι), x ∈ u → IsPrime (f x)

tactic: rwa [Finset.card_insert_of_not_mem] at hn⊢
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
⊢ Finset.card (insert i u) = n

tactic: exacts [hiu, hju]
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card u + 1 = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
⊢ ¬i ∈ u

R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
⊢ ¬j ∈ u

tactic: rw [Finset.coe_insert] at h ⊢
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i (insert j u))), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (k : ι) (_ : k ∈ ↑(insert i u)), ↑(f k)

tactic: rw [Finset.coe_insert] at h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ insert i ↑(insert j u)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (k : ι) (_ : k ∈ insert i ↑u), ↑(f k)

tactic: simp only [Set.biUnion_insert] at h ⊢
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ insert i (insert j ↑u)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (k : ι) (_ : k ∈ insert i ↑u), ↑(f k)

tactic: rw [← Set.union_assoc (f i : Set R)] at h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ (↑(f j) ∪ ⋃ (x : ι) (_ : x ∈ ↑u), ↑(f x)))
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑u), ↑(f x))

tactic: erw [Set.union_eq_self_of_subset_right hfji] at h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ↑(f j) ∪ ⋃ (x : ι) (_ : x ∈ ↑u), ↑(f x))
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑u), ↑(f x))

tactic: exact h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i j : ι
hfji : f j ≤ f i
u : Finset ι
hju : ¬j ∈ u
hit : ¬i ∈ insert j u
hn : Finset.card (insert j u) = n
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ insert j u → IsPrime (f x)
hjt : j ∈ insert j u
hp' : ∀ (k : ι), k ∈ insert i u → IsPrime (f k)
hiu : ¬i ∈ u
hn' : Finset.card (insert i u) = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑u), ↑(f x))
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑u), ↑(f x))

tactic: have h' : (I : Set R) ⊆ f i ∪ f b ∪ ⋃ j ∈ (↑t : Set ι), f j := by
  rw [Finset.coe_insert, Set.biUnion_insert, ← Set.union_assoc,
    Set.union_right_comm (f a : Set R)] at h
  erw [Set.union_eq_self_of_subset_left Ha] at h
  exact h
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: specialize ih hp.2 hn h'
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
h' : ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: right
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
h' : ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f i ∨ I ≤ f b ∨ ∃ i, i ∈ t ∧ I ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: rcases ih with (ih | ih | ⟨k, hkt, ih⟩)
state_before: case pos.h
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
h' : ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f i ∨ I ≤ f b ∨ ∃ i, i ∈ t ∧ I ≤ f i
⊢ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: rw [Finset.coe_insert, Set.biUnion_insert, ← Set.union_assoc,
  Set.union_right_comm (f a : Set R)] at h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
⊢ ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)

tactic: erw [Set.union_eq_self_of_subset_left Ha] at h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ↑(f b) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
⊢ ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)

tactic: exact h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
⊢ ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)

tactic: exact Or.inr ⟨i, Finset.mem_insert_self i t, ih⟩
state_before: case pos.h.inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
h' : ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f i
⊢ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exact Or.inl ih
state_before: case pos.h.inr.inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
h' : ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f b
⊢ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exact Or.inr ⟨k, Finset.mem_insert_of_mem hkt, ih⟩
state_before: case pos.h.inr.inr.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : f a ≤ f i
h' : ↑I ⊆ ↑(f i) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
k : ι
hkt : k ∈ t
ih : I ≤ f k
⊢ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: have h' : (I : Set R) ⊆ f a ∪ f i ∪ ⋃ j ∈ (↑t : Set ι), f j := by
  rw [Finset.coe_insert, Set.biUnion_insert, ← Set.union_assoc,
    Set.union_assoc (f a : Set R)] at h
  erw [Set.union_eq_self_of_subset_left Hb] at h
  exact h
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : f b ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: specialize ih hp.2 hn h'
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : f b ≤ f i
h' : ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: rcases ih with (ih | ih | ⟨k, hkt, ih⟩)
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : f b ≤ f i
h' : ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f a ∨ I ≤ f i ∨ ∃ i, i ∈ t ∧ I ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: rw [Finset.coe_insert, Set.biUnion_insert, ← Set.union_assoc,
  Set.union_assoc (f a : Set R)] at h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : f b ≤ f i
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)

tactic: erw [Set.union_eq_self_of_subset_left Hb] at h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ (↑(f b) ∪ ↑(f i)) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : f b ≤ f i
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)

tactic: exact h
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : f b ≤ f i
⊢ ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)

tactic: exact Or.inl ih
state_before: case pos.inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : f b ≤ f i
h' : ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f a
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exact Or.inr (Or.inr ⟨i, Finset.mem_insert_self i t, ih⟩)
state_before: case pos.inr.inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : f b ≤ f i
h' : ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exact Or.inr (Or.inr ⟨k, Finset.mem_insert_of_mem hkt, ih⟩)
state_before: case pos.inr.inr.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : f b ≤ f i
h' : ↑I ⊆ ↑(f a) ∪ ↑(f i) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
k : ι
hkt : k ∈ t
ih : I ≤ f k
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exact Or.inr (Or.inr ⟨i, Finset.mem_insert_self i t, Hi⟩)
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : I ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: rcases t.eq_empty_or_nonempty with (rfl | hsne)
state_before: R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
⊢ ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i

tactic: simp only [hp.1.inf_le, hp.1.inf_le' hsne, not_or]
state_before: case inr
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
hsne : Finset.Nonempty t
⊢ ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i

tactic: exact ⟨⟨⟨Hi, Ha⟩, Hb⟩, Ht⟩
state_before: case inr
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
hsne : Finset.Nonempty t
⊢ ((¬I ≤ f i ∧ ¬f a ≤ f i) ∧ ¬f b ≤ f i) ∧ ¬∃ i_1, i_1 ∈ t ∧ f i_1 ≤ f i

tactic: rw [Finset.inf_empty, inf_top_eq, hp.1.inf_le, hp.1.inf_le, not_or, not_or]
state_before: case inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
hit : ¬i ∈ ∅
hn : Finset.card ∅ = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i ∅)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ ∅ → IsPrime (f x)
Ht : ¬∃ j, j ∈ ∅ ∧ f j ≤ f i
⊢ ¬I ⊓ f a ⊓ f b ⊓ Finset.inf ∅ f ≤ f i

tactic: exact ⟨⟨Hi, Ha⟩, Hb⟩
state_before: case inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
hit : ¬i ∈ ∅
hn : Finset.card ∅ = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i ∅)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ ∅ → IsPrime (f x)
Ht : ¬∃ j, j ∈ ∅ ∧ f j ≤ f i
⊢ (¬I ≤ f i ∧ ¬f a ≤ f i) ∧ ¬f b ≤ f i

tactic: specialize ih hp.2 hn HI
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: rcases ih with (ih | ih | ⟨k, hkt, ih⟩)
state_before: case pos
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ t ∧ I ≤ f i
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: left
state_before: case pos.inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f a
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exact ih
state_before: case pos.inl.h
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f a
⊢ I ≤ f a

tactic: right
state_before: case pos.inr.inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f b
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: left
state_before: case pos.inr.inl.h
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f b
⊢ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exact ih
state_before: case pos.inr.inl.h.h
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
ih : I ≤ f b
⊢ I ≤ f b

tactic: right
state_before: case pos.inr.inr.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
k : ι
hkt : k ∈ t
ih : I ≤ f k
⊢ I ≤ f a ∨ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: right
state_before: case pos.inr.inr.intro.intro.h
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
k : ι
hkt : k ∈ t
ih : I ≤ f k
⊢ I ≤ f b ∨ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exact ⟨k, Finset.mem_insert_of_mem hkt, ih⟩
state_before: case pos.inr.inr.intro.intro.h.h
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)
n : ℕ
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i_1 : ι) (_ : i_1 ∈ ↑(insert i t)), ↑(f i_1)
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
k : ι
hkt : k ∈ t
ih : I ≤ f k
⊢ ∃ i_1, i_1 ∈ insert i t ∧ I ≤ f i_1

tactic: exact hs (Or.inl <| Or.inl <| add_sub_cancel' r s ▸ (f a).sub_mem ha hra)
state_before: case neg.h.intro.intro.inl.inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x))
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
hsi : s ∈ f i
ha : r + s ∈ ↑(f a)
⊢ False

tactic: exact hs (Or.inl <| Or.inr <| add_sub_cancel' r s ▸ (f b).sub_mem hb hrb)
state_before: case neg.h.intro.intro.inl.inr
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x))
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
hsi : s ∈ f i
hb : r + s ∈ ↑(f b)
⊢ False

tactic: exact hri (add_sub_cancel r s ▸ (f i).sub_mem hi hsi)
state_before: case neg.h.intro.intro.inr.inl
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x))
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
hsi : s ∈ f i
hi : r + s ∈ ↑(f i)
⊢ False

tactic: rw [Set.mem_iUnion₂] at ht
state_before: case neg.h.intro.intro.inr.inr
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x))
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
hsi : s ∈ f i
ht : r + s ∈ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x)
⊢ False

tactic: rcases ht with ⟨j, hjt, hj⟩
state_before: case neg.h.intro.intro.inr.inr
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x))
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
hsi : s ∈ f i
ht : ∃ i j, r + s ∈ ↑(f i)
⊢ False

tactic: simp only [Finset.inf_eq_iInf, SetLike.mem_coe, Submodule.mem_iInf] at hr
state_before: case neg.h.intro.intro.inr.inr.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x))
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hr : r ∈ ↑(Finset.inf t f)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
hsi : s ∈ f i
j : ι
hjt : j ∈ ↑t
hj : r + s ∈ ↑(f j)
⊢ False

tactic: exact hs (Or.inr <| Set.mem_biUnion hjt <| add_sub_cancel' r s ▸ (f j).sub_mem hj <| hr j hjt)
state_before: case neg.h.intro.intro.inr.inr.intro.intro
R✝ : Type u
ι : Type u_1
inst✝¹ : CommSemiring R✝
I✝ J K L : Ideal R✝
R : Type u
inst✝ : CommRing R
s✝ : Finset ι
f : ι → Ideal R
a✝ b✝ : ι
hp✝ : ∀ (i : ι), i ∈ s✝ → IsPrime (f i)
I : Ideal R
n✝ : ℕ
hn✝ : Finset.card s✝ = n✝
h✝ : ↑I ⊆ ↑(f a✝) ∪ ↑(f b✝) ∪ ⋃ (i : ι) (_ : i ∈ ↑s✝), ↑(f i)
n : ℕ
ih :
  ∀ {s : Finset ι} {a b : ι},
    (∀ (i : ι), i ∈ s → IsPrime (f i)) →
      Finset.card s = n →
        (↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (i : ι) (_ : i ∈ ↑s), ↑(f i)) → I ≤ f a ∨ I ≤ f b ∨ ∃ i, i ∈ s ∧ I ≤ f i
a b i : ι
t : Finset ι
hit : ¬i ∈ t
hn : Finset.card t = n
h : ↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ (↑(f i) ∪ ⋃ (x : ι) (_ : x ∈ ↑t), ↑(f x))
hp : IsPrime (f i) ∧ ∀ (x : ι), x ∈ t → IsPrime (f x)
Ht : ¬∃ j, j ∈ t ∧ f j ≤ f i
Ha : ¬f a ≤ f i
Hb : ¬f b ≤ f i
Hi : ¬I ≤ f i
this : ¬I ⊓ f a ⊓ f b ⊓ Finset.inf t f ≤ f i
r : R
hri : ¬r ∈ ↑(f i)
hrb : r ∈ ↑(f b)
hrI : r ∈ ↑I
hra : r ∈ ↑(f a)
HI : ¬↑I ⊆ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
s : R
hsI : s ∈ ↑I
hs : ¬s ∈ ↑(f a) ∪ ↑(f b) ∪ ⋃ (j : ι) (_ : j ∈ ↑t), ↑(f j)
hsi : s ∈ f i
j : ι
hjt : j ∈ ↑t
hj : r + s ∈ ↑(f j)
hr : ∀ (i : ι), i ∈ t → r ∈ f i
⊢ False