@@ -1557,6 +1557,39 @@ 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; under eq_cvg do rewrite big_nil.
1574+ exact: cvg_cst.
1575+ rewrite big_cons; under eq_cvg do rewrite big_cons.
1576+ case: ifP => // Px.
1577+ apply: (@cvg_comp _ _ _
1578+ (fun x1 => (Ff x x1, \big[op/x0]_(j <- r | P j) Ff j x1)) _ _
1579+ (nbhs (Fa x, \big[op/x0]_(j <- r | P j) Fa j)) _ _
1580+ (continuous_curry_cvg opC0)).
1581+ by apply: cvg_pair => //; apply: cvg_f.
1582+ Qed .
1583+
1584+ Lemma continuous_big [K T : topologicalType] [I : Type ] (r : seq I)
1585+ (P : pred I) (F : I -> T -> K) (op : K -> K -> K) (x0 : K) :
1586+ continuous (fun x : K * K => op x.1 x.2) ->
1587+ (forall i, P i -> continuous (F i)) ->
1588+ continuous (fun x => \big[op/x0]_(i <- r | P i) F i x).
1589+ Proof . by move=> op_cont f_cont x; apply: cvg_big => // i /f_cont; apply. Qed .
1590+
1591+ End big_continuous.
1592+
15601593Definition eval {X Y : topologicalType} : continuousType X Y * X -> Y :=
15611594 uncurry (id : continuousType X Y -> (X -> Y)).
15621595
0 commit comments