Skip to content

Commit 79a71e3

Browse files
committed
update hahn_banach, get rid of admit
1 parent 2c2f40e commit 79a71e3

1 file changed

Lines changed: 23 additions & 23 deletions

File tree

theories/hahn_banach_theorem.v

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -974,37 +974,35 @@ Proof.
974974
by rewrite scaleNr scaler0 addrN.
975975
rewrite /( _ @ _ ) //= nearE /(within _ ) f0 //=. rewrite near_simpl.
976976
rewrite -nbhs_nearE => H0 {H} ; move : (nbhs_ex H0) => [tp H] {H0}.
977-
pose t := tp%:num .
978-
exists (2*t^-1). split=> //.
979-
admit.
977+
(*pose t := tp%:num . *)
978+
exists (2*(tp%:num)^-1). split=> //.
980979
move=> x. case: (boolp.EM (x=0)).
981980
- by move=> ->; rewrite f0 normr0 normr0 //= mul0r.
982981
- move/eqP=> xneq0 Fx.
983-
pose a : V := (`|x|^-1 * t/2 ) *: x.
984-
have Btp : ball 0 t a.
982+
pose a : V := (`|x|^-1 * (tp%:num)/2 ) *: x.
983+
have Btp : ball 0 (tp%:num) a.
985984
apply : ball_sym ; rewrite -ball_normE /ball_ /= subr0.
986985
rewrite normrZ mulrC normrM.
987986
rewrite !gtr0_norm //= ; last first.
988-
rewrite pmulr_lgt0 // ?invr_gt0 ?normr_gt0 //. admit.
987+
rewrite pmulr_lgt0 // ?invr_gt0 ?normr_gt0 //.
989988
rewrite mulrC -mulrA -mulrA ltr_pdivrMl; last by rewrite normr_gt0.
990989
rewrite mulrC -mulrA gtr_pMl.
991990
rewrite invf_lt1 //=.
992991
by rewrite ltr1n.
993-
(*by have lt01 : 0 < 1 by []; have le11 : 1 <= 1 by [] ; apply : ltr_pDl.
994992
by rewrite pmulr_lgt0 // !normr_gt0.
995993
have Fa : F a by rewrite -[a]add0r; apply: linF.
996994
have : `|f a| < 1.
997995
by move: (H _ Btp Fa); rewrite /ball /ball_ //= sub0r normrN.
998-
suff -> : ( f a = ( (`|x|^-1) * t/2 ) * ( f x)) .
996+
suff -> : ( f a = ( (`|x|^-1) * (tp%:num)/2 ) * ( f x)) .
999997
rewrite normrM (gtr0_norm) //.
1000-
rewrite mulrC mulrC -mulrA -mulrA ltr_pdivr_mull //= ;
998+
rewrite mulrC mulrC -mulrA -mulrA ltr_pdivrMl //= ;
1001999
last by rewrite normr_gt0.
1002-
rewrite mulrC [(_*1)]mulrC mul1r -ltr_pdivl_mulr //.
1003-
by rewrite invf_div => Ht; apply : ltW.
1004-
by rewrite !mulr_gt0 // invr_gt0 normr_gt0.
1005-
suff -> : a = 0+ (`|x|^-1 * t/2) *: x by rewrite linfF // f0 add0r.
1000+
rewrite mulrC [(_*1)]mulrC mul1r.
1001+
rewrite -[X in _ * X < _ ]invf_div ltr_pdivrMr //=; apply: ltW.
1002+
by rewrite !mulr_gt0 ?normr_gt0 // ?invr_gt0 normr_gt0.
1003+
suff -> : a = 0+ (`|x|^-1 * tp%:num /2) *: x by rewrite linfF // f0 add0r.
10061004
by rewrite add0r.
1007-
Qed.*) Admitted.
1005+
Qed.
10081006

10091007
Lemma mymysup : forall (A : set R) (a m : R),
10101008
A a -> ubound A m ->
@@ -1040,7 +1038,8 @@ Theorem HB_geom_normed :
10401038
continuousR_on_at F 0 f ->
10411039
exists g: {scalar V}, (continuous (g : V -> R)) /\ (forall x, F x -> (g x = f x)).
10421040
Proof.
1043-
move=> H; move: (continuousR_scalar_on_bounded H) => [r [ltr0 fxrx]] {H}.pose p:= fun x : V => `|x|*r.
1041+
move=> H; move: (continuousR_scalar_on_bounded H) => [r [ltr0 fxrx]] {H}.
1042+
pose p:= fun x : V => `|x|*r.
10441043
have convp: hahn_banach_theorem.convex p.
10451044
move=> v1 v2 l m [lt0l lt0m] addlm1 //= ; rewrite !/( p _) !mulrA -mulrDl.
10461045
suff: `|l *: v1 + m *: v2| <= (l * `|v1| + m * `|v2|).
@@ -1125,16 +1124,17 @@ Notation myHB :=
11251124
linear_bounded_continuous: forall [R : numFieldType] [V W : normedModType R] (f : {linear V -> W}), bounded_near f (nbhs 0) <-> continuous f
11261125
continuous_linear_bounded: forall [R : numFieldType] [V W : normedModType R] (x : V) [f : {linear V -> W}], {for 0, continuous f} -> bounded_near f (nbhs x) *)
11271126

1127+
(*TODO : clean the topological structure on F. Define subctvs ? *)
11281128
Theorem new_HB_geom_normed :
1129-
{within [set` F], continuous f} ->
1130-
exists g: {scalar V}, (continuous (g : V -> R)) /\ (forall x, F x -> (g x = f x)).
1129+
continuous (f : (@initial_topology (sub_type F) V val) -> R) ->
1130+
exists g: {scalar V}, (continuous (g : V -> R)) /\ (forall (x : F), (g (val x) = f x)).
11311131
Proof.
1132-
(*
1133-
Search "continuous" "linear" "bounded".
11341132
move /(_ 0) => /= H; rewrite /from_subspace /=.
1135-
have f0 : {for 0, continuous f}. admit (*F needs to be open ?*).
1136-
Check ( continuous_linear_bounded). _ f0).
1137-
move=> H; move: (continuousR_scalar_on_bounded H) => [r [ltr0 fxrx]] {H}.
1133+
have f0 : {for 0, continuous ( (f : (@initial_topology (sub_type F) V val) -> R))}.
1134+
admit.
1135+
Check (continuous_linear_bounded).
1136+
(* TODO ; to apply this lemma, F needs to be given a normedmodtype structure *)
1137+
(* move=> H; move: (continuousR_scalar_on_bounded H) => [r [ltr0 fxrx]] {H}.
11381138
(* want : r :
11391139
ltr0 : 0 < r
11401140
fxrx : forall x : V, F x -> `|f x| <= `|x| * r*)
@@ -1171,7 +1171,7 @@ Proof.
11711171
apply: ler_pM; rewrite ?normr_ge0 ?ltW //=.
11721172
Qed.
11731173
*)
1174-
1174+
Admitted.
11751175

11761176

11771177
End HBGeom.

0 commit comments

Comments
 (0)