Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit ae77628

Browse files
committed
chore(geometry/manifold/times_cont_mdiff): add prod_mk_space versions of prod_mk lemmas (#6681)
These lemmas are useful when dealing with maps `f : M → E' × F'` where `E'` and `F'` are normed spaces. This means some code duplication with `prod_mk` lemmas but I see no way to avoid this without making proofs about `M → E' × F'` longer/harder.
1 parent e16ae24 commit ae77628

File tree

1 file changed

+46
-3
lines changed

1 file changed

+46
-3
lines changed

src/geometry/manifold/times_cont_mdiff.lean

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1510,46 +1510,89 @@ lemma times_cont_mdiff_within_at.prod_mk {f : M → M'} {g : M → N'}
15101510
(hf : times_cont_mdiff_within_at I I' n f s x) (hg : times_cont_mdiff_within_at I J' n g s x) :
15111511
times_cont_mdiff_within_at I (I'.prod J') n (λ x, (f x, g x)) s x :=
15121512
begin
1513-
rw times_cont_mdiff_within_at_iff at *,
1514-
refine ⟨hf.1.prod hg.1, (hf.2.mono _).prod (hg.2.mono _)⟩;
1515-
mfld_set_tac,
1513+
rw times_cont_mdiff_within_at_iff'' at *,
1514+
exact ⟨hf.1.prod hg.1, hf.2.prod hg.2⟩,
1515+
end
1516+
1517+
lemma times_cont_mdiff_within_at.prod_mk_space {f : M → E'} {g : M → F'}
1518+
(hf : times_cont_mdiff_within_at I 𝓘(𝕜, E') n f s x)
1519+
(hg : times_cont_mdiff_within_at I 𝓘(𝕜, F') n g s x) :
1520+
times_cont_mdiff_within_at I 𝓘(𝕜, E' × F') n (λ x, (f x, g x)) s x :=
1521+
begin
1522+
rw times_cont_mdiff_within_at_iff'' at *,
1523+
exact ⟨hf.1.prod hg.1, hf.2.prod hg.2⟩,
15161524
end
15171525

15181526
lemma times_cont_mdiff_at.prod_mk {f : M → M'} {g : M → N'}
15191527
(hf : times_cont_mdiff_at I I' n f x) (hg : times_cont_mdiff_at I J' n g x) :
15201528
times_cont_mdiff_at I (I'.prod J') n (λ x, (f x, g x)) x :=
15211529
hf.prod_mk hg
15221530

1531+
lemma times_cont_mdiff_at.prod_mk_space {f : M → E'} {g : M → F'}
1532+
(hf : times_cont_mdiff_at I 𝓘(𝕜, E') n f x) (hg : times_cont_mdiff_at I 𝓘(𝕜, F') n g x) :
1533+
times_cont_mdiff_at I 𝓘(𝕜, E' × F') n (λ x, (f x, g x)) x :=
1534+
hf.prod_mk_space hg
1535+
15231536
lemma times_cont_mdiff_on.prod_mk {f : M → M'} {g : M → N'}
15241537
(hf : times_cont_mdiff_on I I' n f s) (hg : times_cont_mdiff_on I J' n g s) :
15251538
times_cont_mdiff_on I (I'.prod J') n (λ x, (f x, g x)) s :=
15261539
λ x hx, (hf x hx).prod_mk (hg x hx)
15271540

1541+
lemma times_cont_mdiff_on.prod_mk_space {f : M → E'} {g : M → F'}
1542+
(hf : times_cont_mdiff_on I 𝓘(𝕜, E') n f s) (hg : times_cont_mdiff_on I 𝓘(𝕜, F') n g s) :
1543+
times_cont_mdiff_on I 𝓘(𝕜, E' × F') n (λ x, (f x, g x)) s :=
1544+
λ x hx, (hf x hx).prod_mk_space (hg x hx)
1545+
15281546
lemma times_cont_mdiff.prod_mk {f : M → M'} {g : M → N'}
15291547
(hf : times_cont_mdiff I I' n f) (hg : times_cont_mdiff I J' n g) :
15301548
times_cont_mdiff I (I'.prod J') n (λ x, (f x, g x)) :=
15311549
λ x, (hf x).prod_mk (hg x)
15321550

1551+
lemma times_cont_mdiff.prod_mk_space {f : M → E'} {g : M → F'}
1552+
(hf : times_cont_mdiff I 𝓘(𝕜, E') n f) (hg : times_cont_mdiff I 𝓘(𝕜, F') n g) :
1553+
times_cont_mdiff I 𝓘(𝕜, E' × F') n (λ x, (f x, g x)) :=
1554+
λ x, (hf x).prod_mk_space (hg x)
1555+
15331556
lemma smooth_within_at.prod_mk {f : M → M'} {g : M → N'}
15341557
(hf : smooth_within_at I I' f s x) (hg : smooth_within_at I J' g s x) :
15351558
smooth_within_at I (I'.prod J') (λ x, (f x, g x)) s x :=
15361559
hf.prod_mk hg
15371560

1561+
lemma smooth_within_at.prod_mk_space {f : M → E'} {g : M → F'}
1562+
(hf : smooth_within_at I 𝓘(𝕜, E') f s x) (hg : smooth_within_at I 𝓘(𝕜, F') g s x) :
1563+
smooth_within_at I 𝓘(𝕜, E' × F') (λ x, (f x, g x)) s x :=
1564+
hf.prod_mk_space hg
1565+
15381566
lemma smooth_at.prod_mk {f : M → M'} {g : M → N'}
15391567
(hf : smooth_at I I' f x) (hg : smooth_at I J' g x) :
15401568
smooth_at I (I'.prod J') (λ x, (f x, g x)) x :=
15411569
hf.prod_mk hg
15421570

1571+
lemma smooth_at.prod_mk_space {f : M → E'} {g : M → F'}
1572+
(hf : smooth_at I 𝓘(𝕜, E') f x) (hg : smooth_at I 𝓘(𝕜, F') g x) :
1573+
smooth_at I 𝓘(𝕜, E' × F') (λ x, (f x, g x)) x :=
1574+
hf.prod_mk_space hg
1575+
15431576
lemma smooth_on.prod_mk {f : M → M'} {g : M → N'}
15441577
(hf : smooth_on I I' f s) (hg : smooth_on I J' g s) :
15451578
smooth_on I (I'.prod J') (λ x, (f x, g x)) s :=
15461579
hf.prod_mk hg
15471580

1581+
lemma smooth_on.prod_mk_space {f : M → E'} {g : M → F'}
1582+
(hf : smooth_on I 𝓘(𝕜, E') f s) (hg : smooth_on I 𝓘(𝕜, F') g s) :
1583+
smooth_on I 𝓘(𝕜, E' × F') (λ x, (f x, g x)) s :=
1584+
hf.prod_mk_space hg
1585+
15481586
lemma smooth.prod_mk {f : M → M'} {g : M → N'}
15491587
(hf : smooth I I' f) (hg : smooth I J' g) :
15501588
smooth I (I'.prod J') (λ x, (f x, g x)) :=
15511589
hf.prod_mk hg
15521590

1591+
lemma smooth.prod_mk_space {f : M → E'} {g : M → F'}
1592+
(hf : smooth I 𝓘(𝕜, E') f) (hg : smooth I 𝓘(𝕜, F') g) :
1593+
smooth I 𝓘(𝕜, E' × F') (λ x, (f x, g x)) :=
1594+
hf.prod_mk_space hg
1595+
15531596
end prod_mk
15541597

15551598
section projections

0 commit comments

Comments
 (0)