Skip to content

Commit a5e703c

Browse files
committed
Add tests for mfderiv and dependent fns also
The dependent function warning was added in the previous commit.
1 parent 7683f88 commit a5e703c

1 file changed

Lines changed: 67 additions & 0 deletions

File tree

MathlibTest/DifferentialGeometry/Elaborators.lean

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,39 @@ info: mfderivWithin 𝓘(𝕜, E) 𝓘(𝕜, EM') f s m : TangentSpace 𝓘(𝕜
771771
#guard_msgs in
772772
#check mfderiv[s] f m
773773

774+
variable {σ : Π x : M, V x} {σ' : (x : E) → Trivial E E' x} {s : E → E'}
775+
variable (X : (m : M) → TangentSpace I m) [IsManifold I 1 M] {x : M}
776+
777+
/--
778+
info: mfderiv I (I.prod 𝓘(𝕜, E)) (fun m ↦ TotalSpace.mk' E m (X m))
779+
x : TangentSpace I x →L[𝕜] TangentSpace (I.prod 𝓘(𝕜, E)) (TotalSpace.mk' E x (X x))
780+
-/
781+
#guard_msgs in
782+
#check mfderiv% (T% X) x
783+
784+
/--
785+
info: mfderiv I (I.prod 𝓘(𝕜, F)) (fun x ↦ TotalSpace.mk' F x (σ x))
786+
x : TangentSpace I x →L[𝕜] TangentSpace (I.prod 𝓘(𝕜, F)) (TotalSpace.mk' F x (σ x))
787+
-/
788+
#guard_msgs in
789+
#check mfderiv% (T% σ) x
790+
791+
variable {t : Set E} {p : E}
792+
793+
/--
794+
info: mfderivWithin 𝓘(𝕜, E) (𝓘(𝕜, E).prod 𝓘(𝕜, E')) (fun x ↦ TotalSpace.mk' E' x (σ' x)) t
795+
p : TangentSpace 𝓘(𝕜, E) p →L[𝕜] TangentSpace (𝓘(𝕜, E).prod 𝓘(𝕜, E')) (TotalSpace.mk' E' p (σ' p))
796+
-/
797+
#guard_msgs in
798+
#check mfderiv[t] (T% σ') p
799+
800+
/--
801+
info: mfderivWithin 𝓘(𝕜, E) (𝓘(𝕜, E).prod 𝓘(𝕜, E')) (fun x ↦ TotalSpace.mk' E' x (σ' x))
802+
t : (x : E) → TangentSpace 𝓘(𝕜, E) x →L[𝕜] TangentSpace (𝓘(𝕜, E).prod 𝓘(𝕜, E')) (TotalSpace.mk' E' x (σ' x))
803+
-/
804+
#guard_msgs in
805+
#check mfderiv[t] (T% σ')
806+
774807
section errors
775808

776809
-- Test an error message, about mismatched types.
@@ -820,4 +853,38 @@ but is expected to have type
820853

821854
end errors
822855

856+
section
857+
858+
/--
859+
error: Term X is a dependent function, of type (m : M) → TangentSpace I m
860+
Note: you can use the 'T%' elaborator to convert a dependent function to a non-dependent one
861+
-/
862+
#guard_msgs in
863+
#check mfderiv% X x
864+
865+
/--
866+
error: Term σ is a dependent function, of type (x : M) → V x
867+
Note: you can use the 'T%' elaborator to convert a dependent function to a non-dependent one
868+
-/
869+
#guard_msgs in
870+
#check mfderiv% σ x
871+
872+
variable {t : Set E} {p : E}
873+
874+
/--
875+
error: Term σ' is a dependent function, of type (x : E) → Trivial E E' x
876+
Note: you can use the 'T%' elaborator to convert a dependent function to a non-dependent one
877+
-/
878+
#guard_msgs in
879+
#check mfderiv[t] σ' p
880+
881+
/--
882+
error: Term σ' is a dependent function, of type (x : E) → Trivial E E' x
883+
Note: you can use the 'T%' elaborator to convert a dependent function to a non-dependent one
884+
-/
885+
#guard_msgs in
886+
#check mfderiv[t] σ'
887+
888+
end
889+
823890
end mfderiv

0 commit comments

Comments
 (0)