Stream: General

Topic: Repeated integral for ordered indices


view this post on Zulip Christian Pardillo Laursen (Jul 29 2025 at 21:36):

I'm trying to construct Brownian motion, and part of this involves defining a projective family: given some index set I :: real set, we need to construct a measure $\nu$ with type "(real => real) measure" that is well-behaved under projection (term projective_family in Probability/Projective_Family.thy).

For the Brownian motion construction I'm following (Øksendal), we assume our set can be arranged into terms

0t1<t2<<tk0 \leq t_1 < t_2 < \dots < t_k

Then, we can define the measure as follows, writing p(σ, μ, x)\) for the normal density:

νt1,,tk(F1××Fk)=F1××Fkp(t1,x,x1)p(tktk1,xk1,xk)dx1dxk\nu_{t_1, \dots, t_k}(F_1 \times \dots \times F_k) = \int_{F_1 \times \dots \times F_k} p(t_1, x, x_1) \dots p(t_k - t_{k-1}, x_{k-1}, x_k)dx_1\dots dx_k

I'm thinking of doing this by first getting a sorted list from the index set, and then constructing the integral as a primrec. Does this sound reasonable? Is there a better way? As far as I can tell, nobody has ever constructed a projective family in Isabelle so I don't have anything to go off.

view this post on Zulip Manuel Eberl (Aug 04 2025 at 12:47):

I'm not fully sure I understand what you're doing here (what are the FiF_i, for example), but the normal way to do a "multi-dimensional" integral is to use product measures.

This is done by the PiM operator:

term "Π⇩M x∈I. M"
"Pi⇩M I (λx. M)" :: "('a ⇒ 'b) measure"

There are all the obvious lemmas about Π⇩M x∈{y}. M x and Π⇩M x∈I∪J. M x that allow you to work with this. Your approach with the list and the primrec works as well, of course (at least for a finite number of dimensions) but things will probably become messy as soon as you want to change the order of things or pull out a dimension other than the first one.

There are some examples of this in the distribution and the AFP:

Hope that helps!


Last updated: Aug 23 2025 at 01:39 UTC