@[reducible, inline]
Equations
- WeightedNetKAT.η i = { toFun := Pi.single i 1, countable := ⋯ }
Instances For
Equations
Instances For
Equations
Instances For
@[reducible]
def
WeightedNetKAT.Pred.test_decidable
{F : Type}
[Listed F]
{N : Type}
[DecidableEq N]
{t : Pred[F,N]}
:
Equations
- WeightedNetKAT.Pred.test_decidable pk = isFalse ⋯
- WeightedNetKAT.Pred.test_decidable pk = isTrue ⋯
- WeightedNetKAT.Pred.test_decidable pk = if h' : pk f = n then isTrue h' else isFalse h'
- WeightedNetKAT.Pred.test_decidable pk = if h' : t_2.test pk ∨ u.test pk then isTrue h' else isFalse h'
- WeightedNetKAT.Pred.test_decidable pk = if h' : t_2.test pk ∧ u.test pk then isTrue h' else isFalse h'
- WeightedNetKAT.Pred.test_decidable pk = if h' : ¬t_2.test pk then isTrue h' else isFalse h'
Instances For
@[implicit_reducible]
instance
WeightedNetKAT.Pred.test_instDecidable
{F : Type}
[Listed F]
{N : Type}
[DecidableEq N]
{t : Pred[F,N]}
:
Equations
Instances For
@[irreducible]
noncomputable def
WeightedNetKAT.Pol.sem
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
(p : Pol[F,N,𝒮])
:
Equations
- (WeightedNetKAT.Pol.Filter t).sem = t.sem
- wnk_pol {~f ← ~n}.sem = fun (x : Pk[F,N] × List Pk[F,N]) => match x with | (π, h) => WeightedNetKAT.η (π[f ↦ n], h)
- wnk_pol {dup}.sem = fun (x : Pk[F,N] × List Pk[F,N]) => match x with | (π, h) => WeightedNetKAT.η (π, π :: h)
- wnk_pol {~p_2; ~q}.sem = fun (h : Pk[F,N] × List Pk[F,N]) => (p_2.sem h).bind q.sem
- wnk_pol {~w ⨀ ~p_2}.sem = fun (h : Pk[F,N] × List Pk[F,N]) => w * p_2.sem h
- wnk_pol {~p_2 ⨁ ~q}.sem = fun (h : Pk[F,N] × List Pk[F,N]) => p_2.sem h + q.sem h
- wnk_pol {~p_2*}.sem = fun (h : Pk[F,N] × List Pk[F,N]) => ω∑ (n : ℕ), (p_2 ^ n).sem h
Instances For
noncomputable def
WeightedNetKAT.Pol.map
{𝒮 : Type}
[Semiring 𝒮]
{F N M : Type}
[Semiring M]
(p : Pol[F,N,𝒮])
(f : 𝒮 →+* M)
:
Equations
- (WeightedNetKAT.Pol.Filter t).map f = WeightedNetKAT.Pol.Filter t
- wnk_pol {~f_1 ← ~n}.map f = wnk_pol {~f_1 ← ~n}
- wnk_pol {dup}.map f = wnk_pol {dup}
- wnk_pol {~p_2; ~q}.map f = wnk_pol {~(p_2.map f); ~(q.map f)}
- wnk_pol {~w ⨀ ~p_2}.map f = wnk_pol {~(f w) ⨀ ~(p_2.map f)}
- wnk_pol {~p_2 ⨁ ~q}.map f = wnk_pol {~(p_2.map f) ⨁ ~(q.map f)}
- wnk_pol {~p_2*}.map f = wnk_pol {~(p_2.map f)*}
Instances For
theorem
WeightedNetKAT.map_ωSum
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{M : Type}
[Semiring M]
[OmegaCompletePartialOrder M]
[OrderBot M]
[IsPositiveOrderedAddMonoid M]
{ι : Type}
[Countable ι]
(g : 𝒮 →+* M)
(hg : OmegaCompletePartialOrder.ωScottContinuous ⇑g)
(f : ι → 𝒮)
:
theorem
WeightedNetKAT.Pol.map_sem
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
{M : Type}
[Semiring M]
[OmegaCompletePartialOrder M]
[OrderBot M]
[IsPositiveOrderedAddMonoid M]
(p : Pol[F,N,𝒮])
(f : 𝒮 →+* M)
(hf : OmegaCompletePartialOrder.ωScottContinuous ⇑f)
(h h' : Pk[F,N] × List Pk[F,N])
:
noncomputable def
WeightedNetKAT.Φ
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
(p : Pol[F,N,𝒮])
(d : Pk[F,N] × List Pk[F,N] → Pk[F,N] × List Pk[F,N] →c 𝒮)
:
Equations
- WeightedNetKAT.Φ p d h = WeightedNetKAT.η h + (p.sem h).bind d
Instances For
theorem
WeightedNetKAT.Φ_mono
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
(p : Pol[F,N,𝒮])
:
theorem
WeightedNetKAT.Φ_continuous
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[MulRightMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
[OmegaContinuousNonUnitalSemiring 𝒮]
(p : Pol[F,N,𝒮])
:
noncomputable def
WeightedNetKAT.Φ_chain
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
(p : Pol[F,N,𝒮])
:
Equations
- WeightedNetKAT.Φ_chain p = { toFun := fun (n : ℕ) => (WeightedNetKAT.Φ p)^[n] 0, monotone' := ⋯ }
Instances For
noncomputable def
WeightedNetKAT.Φ_ωSup
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
(p : Pol[F,N,𝒮])
:
Instances For
Instances For
theorem
WeightedNetKAT.IsLfp_unique
{α : Type}
[OmegaCompletePartialOrder α]
{f : α → α}
{p₁ p₂ : α}
(h₁ : IsLfp f p₁)
(h₂ : IsLfp f p₂)
:
theorem
WeightedNetKAT.Pol.Φ_ωSup_isLfp
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[MulRightMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
[OmegaContinuousNonUnitalSemiring 𝒮]
(p : Pol[F,N,𝒮])
:
theorem
WeightedNetKAT.Pol.iter_sem_isLfp
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[MulRightMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
[OmegaContinuousNonUnitalSemiring 𝒮]
(p : Pol[F,N,𝒮])
:
theorem
WeightedNetKAT.Pol.iter_sem_eq_lfp
{𝒮 : Type}
[Semiring 𝒮]
[OmegaCompletePartialOrder 𝒮]
[OrderBot 𝒮]
[MulLeftMono 𝒮]
[MulRightMono 𝒮]
[IsPositiveOrderedAddMonoid 𝒮]
{F : Type}
[DecidableEq F]
[Listed F]
{N : Type}
[DecidableEq N]
[OmegaContinuousNonUnitalSemiring 𝒮]
(p : Pol[F,N,𝒮])
: