@@ -1557,6 +1557,40 @@ End cartesian_closed.
15571557
15581558End currying.
15591559
1560+ Section big_continuous.
1561+
1562+ Lemma cvg_big (T : Type ) (U : topologicalType) [F : set_system T] [I : Type ]
1563+ (r : seq I) (P : pred I) (Ff : I -> T -> U) (Fa : I -> U)
1564+ (op : U -> U -> U) (x0 : U):
1565+ Filter F ->
1566+ continuous (fun x : U * U => op x.1 x.2) ->
1567+ (forall i, P i -> Ff i x @[x --> F] --> Fa i) ->
1568+ \big[op/x0]_(i <- r | P i) (Ff i x) @[x --> F] -->
1569+ \big[op/x0]_(i <- r | P i) Fa i.
1570+ Proof .
1571+ move=> FF opC0 cvg_f.
1572+ elim: r => [|x r IHr].
1573+ rewrite big_nil.
1574+ under eq_cvg do rewrite big_nil.
1575+ exact: cvg_cst.
1576+ rewrite big_cons (eq_cvg _ _ (fun x => big_cons _ _ _ _ _ _)).
1577+ case/boolP: (P x) => // Px.
1578+ apply: (@cvg_comp _ _ _ (fun x1 => (Ff x x1, \big[op/x0]_(j <- r | P j) Ff j x1)) _ _ (nbhs (Fa x, \big[op/x0]_(j <- r | P j) Fa j)) _ _ (continuous_curry_cvg opC0)).
1579+ by apply: cvg_pair => //; apply: cvg_f.
1580+ Qed .
1581+
1582+ Lemma continuous_big [K T : topologicalType] [I : Type ] (r : seq I)
1583+ (P : pred I) (F : I -> T -> K) (op : K -> K -> K) (x0 : K) :
1584+ continuous (fun x : K * K => op x.1 x.2) ->
1585+ (forall i, P i -> continuous (F i)) ->
1586+ continuous (fun x => \big[op/x0]_(i <- r | P i) F i x).
1587+ Proof .
1588+ move=> op_cont f_cont x.
1589+ by apply: cvg_big => // i /f_cont; apply.
1590+ Qed .
1591+
1592+ End big_continuous.
1593+
15601594Definition eval {X Y : topologicalType} : continuousType X Y * X -> Y :=
15611595 uncurry (id : continuousType X Y -> (X -> Y)).
15621596
0 commit comments