@[simp]
theorem
WeightedNetKAT.Pol.instAdd_sem
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[Listed F]
[DecidableEq F]
{N : Type}
[DecidableEq N]
(p q : Pol[F,N,𝒮])
:
@[simp]
theorem
WeightedNetKAT.Pol.instZero_sem
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[Listed F]
[DecidableEq F]
{N : Type}
[DecidableEq N]
:
Equations
- (WeightedNetKAT.Pol.Filter t).approx_n n = WeightedNetKAT.Pol.Filter t
- wnk_pol {~f ← ~n_1}.approx_n n = wnk_pol {~f ← ~n_1}
- wnk_pol {dup}.approx_n n = wnk_pol {dup}
- wnk_pol {~p_2; ~q}.approx_n n = wnk_pol {~(p_2.approx_n n); ~(q.approx_n n)}
- wnk_pol {~w ⨀ ~p_2}.approx_n n = wnk_pol {~w ⨀ ~(p_2.approx_n n)}
- wnk_pol {~p_2 ⨁ ~q}.approx_n n = wnk_pol {~(p_2.approx_n n) ⨁ ~(q.approx_n n)}
- wnk_pol {~p_2*}.approx_n n = (List.map (fun (x : ℕ) => p_2.approx_n n ^ x) (List.range n)).sum
Instances For
@[irreducible]
noncomputable def
WeightedNetKAT.Pol.sem_n
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[Listed F]
[DecidableEq F]
{N : Type}
[DecidableEq N]
(p : Pol[F,N,𝒮])
(n : ℕ)
:
Equations
- (WeightedNetKAT.Pol.Filter t).sem_n n = t.sem
- wnk_pol {~f ← ~n_1}.sem_n n = fun (x : Pk[F,N] × List Pk[F,N]) => match x with | (π, h) => WeightedNetKAT.η (π[f ↦ n_1], h)
- wnk_pol {dup}.sem_n n = fun (x : Pk[F,N] × List Pk[F,N]) => match x with | (π, h) => WeightedNetKAT.η (π, π :: h)
- wnk_pol {~p_2; ~q}.sem_n n = fun (h : Pk[F,N] × List Pk[F,N]) => (p_2.sem_n n h).bind (q.sem_n n)
- wnk_pol {~w ⨀ ~p_2}.sem_n n = fun (h : Pk[F,N] × List Pk[F,N]) => w * p_2.sem_n n h
- wnk_pol {~p_2 ⨁ ~q}.sem_n n = fun (h : Pk[F,N] × List Pk[F,N]) => p_2.sem_n n h + q.sem_n n h
- wnk_pol {~p_2*}.sem_n n = fun (h : Pk[F,N] × List Pk[F,N]) => ∑ i ∈ Finset.range n, (p_2 ^ i).sem_n n h
Instances For
theorem
WeightedNetKAT.Pol.approx_n_sem
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[Listed F]
[DecidableEq F]
{N : Type}
[DecidableEq N]
(p : Pol[F,N,𝒮])
(n : ℕ)
:
theorem
WeightedNetKAT.Pol.sem_n_mono
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[MulRightMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[Listed F]
[DecidableEq F]
{N : Type}
[DecidableEq N]
(p : Pol[F,N,𝒮])
:
theorem
WeightedNetKAT.Pol.iter_m_sem_eq_ωSup_sem_n
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[MulRightMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
[OmegaContinuousNonUnitalSemiring 𝒮]
{F : Type}
[Listed F]
[DecidableEq F]
{N : Type}
[DecidableEq N]
[Fintype N]
{p : Pol[F,N,𝒮]}
(h : p.sem = OmegaCompletePartialOrder.ωSup { toFun := p.sem_n, monotone' := ⋯ })
(m : ℕ)
:
theorem
WeightedNetKAT.Pol.sem_n_approx
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[MulRightMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
[OmegaContinuousNonUnitalSemiring 𝒮]
{F : Type}
[Listed F]
[DecidableEq F]
{N : Type}
[DecidableEq N]
[Fintype N]
(p : Pol[F,N,𝒮])
:
theorem
WeightedNetKAT.Pol.sem_n_lowerBounds
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[MulRightMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
[OmegaContinuousNonUnitalSemiring 𝒮]
{F : Type}
[Listed F]
[DecidableEq F]
{N : Type}
[DecidableEq N]
[Fintype N]
(p : Pol[F,N,𝒮])
(n : ℕ)
: