Theorem: AlgebraicGeometry.genericPoint_eq_of_isOpenImmersion
File: Mathlib/AlgebraicGeometry/FunctionField.lean

tactic: apply ((genericPoint_spec Y).eq _).symm
state_before: X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ f.val.base (genericPoint ↑↑X.toPresheafedSpace) = genericPoint ↑↑Y.toPresheafedSpace
state_after: X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ IsGenericPoint (f.val.base (genericPoint ↑↑X.toPresheafedSpace)) ⊤

tactic: convert (genericPoint_spec X).image (show Continuous f.1.base by fun_prop)
state_before: X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ IsGenericPoint (f.val.base (genericPoint ↑↑X.toPresheafedSpace)) ⊤
state_after: case h.e'_4
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ ⊤ = closure (⇑f.val.base '' ⊤)

tactic: symm
state_before: case h.e'_4
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ ⊤ = closure (⇑f.val.base '' ⊤)
state_after: case h.e'_4
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ closure (⇑f.val.base '' ⊤) = ⊤

tactic: rw [eq_top_iff, Set.top_eq_univ, Set.top_eq_univ]
state_before: case h.e'_4
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ closure (⇑f.val.base '' ⊤) = ⊤
state_after: case h.e'_4
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ Set.univ ≤ closure (⇑f.val.base '' Set.univ)

tactic: convert subset_closure_inter_of_isPreirreducible_of_isOpen _ H.base_open.isOpen_range _
state_before: case h.e'_4
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ Set.univ ≤ closure (⇑f.val.base '' Set.univ)
state_after: case h.e'_2.h.e'_3
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ ⇑f.val.base '' Set.univ = Set.univ ∩ Set.range ⇑f.val.base

case h.e'_4.convert_2
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ IsPreirreducible Set.univ

case h.e'_4.convert_3
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ (Set.univ ∩ Set.range ⇑f.val.base).Nonempty

tactic: fun_prop
state_before: X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ Continuous ⇑f.val.base
state_after: no goals

tactic: rw [Set.univ_inter, Set.image_univ]
state_before: case h.e'_2.h.e'_3
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ ⇑f.val.base '' Set.univ = Set.univ ∩ Set.range ⇑f.val.base
state_after: no goals

tactic: apply PreirreducibleSpace.isPreirreducible_univ (X := Y)
state_before: case h.e'_4.convert_2
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ IsPreirreducible Set.univ
state_after: no goals

tactic: exact ⟨_, trivial, Set.mem_range_self hX.2.some⟩
state_before: case h.e'_4.convert_3
X✝ : Scheme
X Y : Scheme
f : X ⟶ Y
H : IsOpenImmersion f
hX : IrreducibleSpace ↑↑X.toPresheafedSpace
inst✝ : IrreducibleSpace ↑↑Y.toPresheafedSpace
⊢ (Set.univ ∩ Set.range ⇑f.val.base).Nonempty
state_after: no goals