Theorem: boundary_of_boundaryless_left
File: Mathlib/Geometry/Manifold/InteriorBoundary.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁴ : TopologicalSpace H'
N : Type u_7
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace H' N
J : ModelWithCorners 𝕜 E' H'
inst✝¹ : SmoothManifoldWithCorners J N
x : M
y : N
inst✝ : I.Boundaryless
⊢ (I.prod J).boundary (M × N) = univ.prod (J.boundary N)
state_after: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁴ : TopologicalSpace H'
N : Type u_7
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace H' N
J : ModelWithCorners 𝕜 E' H'
inst✝¹ : SmoothManifoldWithCorners J N
x : M
y : N
inst✝ : I.Boundaryless
⊢ univ.prod (J.boundary N) ∪ ∅.prod univ = univ.prod (J.boundary N)
tactic: rw [ModelWithCorners.boundary_prod, ModelWithCorners.Boundaryless.boundary_eq_empty I]
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁴ : TopologicalSpace H'
N : Type u_7
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace H' N
J : ModelWithCorners 𝕜 E' H'
inst✝¹ : SmoothManifoldWithCorners J N
x : M
y : N
inst✝ : I.Boundaryless
⊢ univ.prod (J.boundary N) ∪ ∅.prod univ = univ.prod (J.boundary N)
state_after: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁴ : TopologicalSpace H'
N : Type u_7
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace H' N
J : ModelWithCorners 𝕜 E' H'
inst✝¹ : SmoothManifoldWithCorners J N
x : M
y : N
inst✝ : I.Boundaryless
this : ∅.prod univ = ∅
⊢ univ.prod (J.boundary N) ∪ ∅.prod univ = univ.prod (J.boundary N)
tactic: have : Set.prod (∅ : Set M) (univ : Set N) = ∅ := Set.empty_prod
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁴ : TopologicalSpace H'
N : Type u_7
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace H' N
J : ModelWithCorners 𝕜 E' H'
inst✝¹ : SmoothManifoldWithCorners J N
x : M
y : N
inst✝ : I.Boundaryless
this : ∅.prod univ = ∅
⊢ univ.prod (J.boundary N) ∪ ∅.prod univ = univ.prod (J.boundary N)
state_after: no goals
tactic: rw [this, union_empty]