clutch.clutch
clutch.approxis.adequacy
clutch.approxis.adequacy_rel
clutch.approxis.app_rel_rules
clutch.approxis.app_weakestpre
clutch.approxis.approxis
clutch.approxis.compatibility
clutch.approxis.coupling_rules
- Coupling rules
- rand(N) ~ rand(N) coupling
- fragmented state rand N ~ state rand M, M>=N, under injective function from N to M
- Exact couplings
- rand(unit, N) ~ state_step(α', N) coupling
- rand(α, N) ~ rand(α, N) wrong bound coupling
clutch.approxis.derived_laws
clutch.approxis.ectx_lifting
clutch.approxis.fundamental
clutch.approxis.interp
clutch.approxis.lifting
clutch.approxis.model
clutch.approxis.primitive_laws
clutch.approxis.proofmode
clutch.approxis.rel_tactics
clutch.approxis.reltac2
clutch.approxis.soundness
clutch.approxis.examples.ElGamal_closed_ctx
clutch.approxis.examples.ElGamal_defs
clutch.approxis.examples.ElGamal_semantic
clutch.approxis.examples.ElGamal_syntactic
clutch.approxis.examples.KEM
clutch.approxis.examples.KEMDEM
clutch.approxis.examples.LR_tac
clutch.approxis.examples.advantage_laws
clutch.approxis.examples.avoid_collision_rel
clutch.approxis.examples.b_tree
clutch.approxis.examples.b_tree_adt
clutch.approxis.examples.bounded_oracle
clutch.approxis.examples.diffie_hellman
clutch.approxis.examples.intctxt_ideal_dec
clutch.approxis.examples.intptxt_ideal_dec
clutch.approxis.examples.iterable_expression
clutch.approxis.examples.kem_elgamal
clutch.approxis.examples.kemdem_hybrid_cpa_generic
clutch.approxis.examples.kemdem_hybrid_cpa_instance_otp
clutch.approxis.examples.kemdem_hybrid_cpa_instance_rf
clutch.approxis.examples.linked_list
clutch.approxis.examples.list
clutch.approxis.examples.map
clutch.approxis.examples.one_time_pad
clutch.approxis.examples.option
clutch.approxis.examples.prf
clutch.approxis.examples.prf_cpa
clutch.approxis.examples.prf_cpa_combined
clutch.approxis.examples.prf_cpa_combined_sem_typ
clutch.approxis.examples.prf_cpa_with_dec
clutch.approxis.examples.prf_local_state
clutch.approxis.examples.prg
clutch.approxis.examples.prg_extension
clutch.approxis.examples.prg_prf
clutch.approxis.examples.prp
clutch.approxis.examples.prp_prf_adaptive
clutch.approxis.examples.prp_prf_test
clutch.approxis.examples.prp_prf_weak
clutch.approxis.examples.pubkey
clutch.approxis.examples.pubkey_class
clutch.approxis.examples.rejection_samplers
clutch.approxis.examples.sampling_without_replacement
clutch.approxis.examples.security_aux
clutch.approxis.examples.sum_seq
clutch.approxis.examples.symmetric
clutch.approxis.examples.symmetric_init
clutch.approxis.examples.valgroup
clutch.approxis.examples.valgroup_Zp
clutch.approxis.examples.valgroup_Zpx
clutch.approxis.examples.von_neumann_coin
clutch.approxis.examples.wmf_attack
clutch.approxis.examples.wmf_eav_security
clutch.approxis.examples.wmf_protocol
clutch.approxis.examples.xor
clutch.base_logic.error_credits
clutch.base_logic.error_credits_mult
clutch.base_logic.spec_auth_markov
clutch.base_logic.spec_update
clutch.bi.weakestpre
clutch.caliper.adequacy
clutch.caliper.derived_laws
- Rules for allocation
- Rules for accessing array elements
- Rules for allocation
- Rules for accessing array elements
clutch.caliper.ectx_lifting
clutch.caliper.lifting
clutch.caliper.primitive_laws
clutch.caliper.proofmode
clutch.caliper.seq_weakestpre
clutch.caliper.weakestpre
- A coupling fixpoint for rwp
- The refinement weakest preconditions
- RWP
- RSWP
- Derived rules
- Derived rules
clutch.caliper.examples.bounded_random_walk
clutch.caliper.examples.coin_random_walk
clutch.caliper.examples.determinize
clutch.caliper.examples.flip
clutch.caliper.examples.galton_watson_tree
clutch.caliper.examples.lazy_real
clutch.caliper.examples.listgen
clutch.caliper.examples.nat_random_walk
clutch.caliper.examples.treap
clutch.caliper.examples.lib.list
clutch.clutch.adequacy
clutch.clutch.adequacy_rel
clutch.clutch.compatibility
clutch.clutch.coupling_rules
- Coupling rules
- state_step(α, N) ~ state_step(α', N) coupling
- state_step(α, N) ~ rand(N) coupling
- rand(N) ~ state_step(α', N) coupling
- rand(α, N) ~ rand(N) coupling
- rand(N) ~ rand(α, N) coupling
- rand(N) ~ rand(N) coupling
- rand(α, N) ~ rand(α, N) coupling
- rand(α, N) ~ rand(α, N) wrong bound coupling
- rand(α, N) ~ rand(N) wrong bound coupling
- rand(N) ~ rand(α, N) wrong bound coupling
clutch.clutch.derived_laws
clutch.clutch.ectx_lifting
clutch.clutch.fundamental
clutch.clutch.interp
clutch.clutch.lifting
clutch.clutch.model
clutch.clutch.primitive_laws
clutch.clutch.proofmode
clutch.clutch.rel_rules
clutch.clutch.rel_tactics
clutch.clutch.reltac2
clutch.clutch.soundness
clutch.clutch.weakestpre
clutch.clutch.examples.DH_assumptions
clutch.clutch.examples.awkward_deterministic
clutch.clutch.examples.awkward_lazy_eager_coin
clutch.clutch.examples.awkward_probabilistic
clutch.clutch.examples.counterexample
clutch.clutch.examples.coupon
clutch.clutch.examples.env_bisim
clutch.clutch.examples.erasure
clutch.clutch.examples.flip_once_many_synchronised_coin
clutch.clutch.examples.geometric
clutch.clutch.examples.hash
clutch.clutch.examples.id_rec
clutch.clutch.examples.in_place_quicksort
clutch.clutch.examples.keyed_hash
clutch.clutch.examples.lazy_eager_coin
clutch.clutch.examples.lazy_eager_nat
clutch.clutch.examples.lazy_int
clutch.clutch.examples.one_time_pad
clutch.clutch.examples.rng
clutch.clutch.examples.sample_int
clutch.clutch.examples.split_rng
clutch.clutch.examples.stream
clutch.clutch.examples.von_neumann_coin
clutch.clutch.examples.crypto.ElGamal
clutch.clutch.examples.crypto.ElGamal_bijection
clutch.clutch.examples.crypto.ElGamal_closed_ctx
clutch.clutch.examples.crypto.advantage_laws
clutch.clutch.examples.crypto.valgroup
clutch.clutch.examples.crypto.valgroup_Zp
clutch.clutch.examples.crypto.valgroup_Zpx
clutch.clutch.lib.array
- array_free, to deallocate an entire array in one go.
- array_copy_to, a function which copies to an array in-place.
- Using array_copy_to we also implement array_clone, which allocates a fresh
- array_init, to create and initialize an array with a given
clutch.clutch.lib.conversion
clutch.clutch.lib.flip
clutch.clutch.lib.list
clutch.clutch.lib.map
clutch.common.con_ectx_language
clutch.common.con_ectxi_language
clutch.common.con_inject
clutch.common.con_language
clutch.common.ectx_language
clutch.common.ectxi_language
clutch.common.erasable
clutch.common.exec
clutch.common.inject
clutch.common.language
clutch.common.locations
clutch.common.sch_erasable
clutch.con_prob_lang.class_instances
clutch.con_prob_lang.ctx_subst
clutch.con_prob_lang.erasure
clutch.con_prob_lang.lang
clutch.con_prob_lang.lub_termination
clutch.con_prob_lang.metatheory
clutch.con_prob_lang.notation
clutch.con_prob_lang.tactics
clutch.con_prob_lang.wp_tactics
clutch.con_prob_lang.spec.spec_ra
clutch.con_prob_lang.spec.spec_tactics
clutch.con_prob_lang.typing.contextual_refinement
clutch.con_prob_lang.typing.tychk
clutch.con_prob_lang.typing.types
clutch.coneris.adequacy
clutch.coneris.atomic
clutch.coneris.coneris
clutch.coneris.derived_laws
clutch.coneris.ectx_lifting
clutch.coneris.error_rules
clutch.coneris.lifting
clutch.coneris.primitive_laws
clutch.coneris.proofmode
clutch.coneris.weakestpre
clutch.coneris.wp_update
clutch.coneris.examples.con_two_add
- This is the con_two_add example in the paper of Coneris
- This is the proof sketched for the example con_two_add in the paper of Coneris.
clutch.coneris.examples.concurrent_hash
clutch.coneris.examples.coneris_examples
clutch.coneris.examples.hash
clutch.coneris.examples.message_pass
clutch.coneris.examples.parallel_add
clutch.coneris.examples.race
clutch.coneris.examples.two_die
- This is the con_prog example in the paper of Coneris
- This is the proof presented for the example con_prog in the paper of Coneris
clutch.coneris.examples.bloom_filter.bloom_filter
clutch.coneris.examples.bloom_filter.concurrent_bloom_filter
clutch.coneris.examples.bloom_filter.concurrent_bloom_filter_alt
clutch.coneris.examples.hash.coll_free_hash_view_impl
clutch.coneris.examples.hash.coll_free_hash_view_interface
clutch.coneris.examples.hash.con_hash_impl0
clutch.coneris.examples.hash.con_hash_impl1
clutch.coneris.examples.hash.con_hash_impl2
clutch.coneris.examples.hash.con_hash_impl3
clutch.coneris.examples.hash.con_hash_impl4
clutch.coneris.examples.hash.con_hash_interface0
clutch.coneris.examples.hash.con_hash_interface1
clutch.coneris.examples.hash.con_hash_interface2
clutch.coneris.examples.hash.con_hash_interface3
clutch.coneris.examples.hash.con_hash_interface4
clutch.coneris.examples.hash.hash_race
clutch.coneris.examples.hash.hash_view_impl
clutch.coneris.examples.hash.hash_view_interface
clutch.coneris.examples.hash.seq_hash_impl
clutch.coneris.examples.hash.seq_hash_interface
- seq hash interface. Not completed. To be deleted
- Operations
- Ghost state
- Predicates
- General properties of the predicates
clutch.coneris.examples.lazy_rand.lazy_rand_impl
clutch.coneris.examples.lazy_rand.lazy_rand_interface
clutch.coneris.examples.lazy_rand.lazy_rand_race
clutch.coneris.examples.random_counter.client
clutch.coneris.examples.random_counter.client2
clutch.coneris.examples.random_counter.impl1
clutch.coneris.examples.random_counter.impl2
clutch.coneris.examples.random_counter.impl3
clutch.coneris.examples.random_counter.random_counter
clutch.coneris.examples.random_counter2.client
clutch.coneris.examples.random_counter2.impl1
clutch.coneris.examples.random_counter2.impl2
clutch.coneris.examples.random_counter2.impl3
clutch.coneris.examples.random_counter2.random_counter
clutch.coneris.examples.random_counter3.client
clutch.coneris.examples.random_counter3.impl1
clutch.coneris.examples.random_counter3.impl2
clutch.coneris.examples.random_counter3.impl3
clutch.coneris.examples.random_counter3.random_counter
clutch.coneris.lib.abstract_tape
clutch.coneris.lib.array
- array_free, to deallocate an entire array in one go.
- array_copy_to, a function which copies to an array in-place.
- Using array_copy_to we also implement array_clone, which allocates a fresh
- array_init, to create and initialize an array with a given
clutch.coneris.lib.conversion
clutch.coneris.lib.flip
clutch.coneris.lib.hocap_flip
clutch.coneris.lib.hocap_rand
- Hocap rand specs
- Operations
- Ghost state
- Predicates
- General properties of the predicates
- Program specs
clutch.coneris.lib.hocap_rand_alt
- This file is an experimental attempt in deriving a different spec for the abstract rand module
- Operations
- Ghost state
- Predicates
- General properties of the predicates
- Program specs
clutch.coneris.lib.hocap_rand_atomic
- Hocap atomic rand specs
- Operations
- Ghost state
- Predicates
- General properties of the predicates
- Program specs
clutch.coneris.lib.lazy
clutch.coneris.lib.list
clutch.coneris.lib.lock
clutch.coneris.lib.map
clutch.coneris.lib.par
clutch.coneris.lib.spawn
clutch.coneris.lib.spin_lock
clutch.delay_prob_lang.class_instances
clutch.delay_prob_lang.commute
clutch.delay_prob_lang.lang
clutch.delay_prob_lang.metatheory
clutch.delay_prob_lang.notation
clutch.delay_prob_lang.preserve_atomicity
clutch.delay_prob_lang.tactics
clutch.delay_prob_lang.urn_erasable
clutch.delay_prob_lang.urn_subst
clutch.delay_prob_lang.wp_tactics
clutch.delay_prob_lang.typing.types
clutch.diffpriv.adequacy
clutch.diffpriv.adequacy_rel
clutch.diffpriv.app_rel_rules
clutch.diffpriv.compatibility
clutch.diffpriv.coupling_rules
- Coupling rules
- rand(N) ~ rand(N) coupling
- fragmented state rand N ~ state rand M, M>=N, under injective function from N to M
- Exact couplings
- rand(unit, N) ~ state_step(α', N) coupling
- rand(α, N) ~ rand(α, N) wrong bound coupling
clutch.diffpriv.derived_laws
clutch.diffpriv.diffpriv
clutch.diffpriv.diffpriv_rules
clutch.diffpriv.distance
clutch.diffpriv.ectx_lifting
clutch.diffpriv.fundamental
clutch.diffpriv.interp
clutch.diffpriv.lifting
clutch.diffpriv.model
clutch.diffpriv.primitive_laws
clutch.diffpriv.proofmode
clutch.diffpriv.rel_tactics
clutch.diffpriv.soundness
clutch.diffpriv.weakestpre
clutch.diffpriv.examples.SVT_experiments
clutch.diffpriv.examples.adaptive_count
clutch.diffpriv.examples.diffpriv_basic_examples
clutch.diffpriv.examples.exact_cache
clutch.diffpriv.examples.laplace_tapes
clutch.diffpriv.examples.list
clutch.diffpriv.examples.map
clutch.diffpriv.examples.pointwise_eq_exact_cache
clutch.diffpriv.examples.pointwise_eq_list
clutch.diffpriv.examples.pointwise_eq_sparse_vector_technique
clutch.diffpriv.examples.privacy_filter
clutch.diffpriv.examples.report_noisy_max
clutch.diffpriv.examples.report_noisy_max_lemmas
clutch.diffpriv.examples.report_noisy_max_pointwise
clutch.diffpriv.examples.rnm_inspired_problems
clutch.diffpriv.examples.sparse_vector_technique
clutch.diffpriv.examples.sum_queries
clutch.diffpriv.examples.from_approxis.LR_tac
clutch.diffpriv.examples.from_approxis.avoid_collision_rel
clutch.diffpriv.examples.from_approxis.b_tree
clutch.diffpriv.examples.from_approxis.b_tree_adt
clutch.diffpriv.examples.from_approxis.bounded_oracle
clutch.diffpriv.examples.from_approxis.option
clutch.diffpriv.examples.from_approxis.prf
clutch.diffpriv.examples.from_approxis.prf_cpa
clutch.diffpriv.examples.from_approxis.prp
clutch.diffpriv.examples.from_approxis.prp_prf_adaptive
clutch.diffpriv.examples.from_approxis.prp_prf_test
clutch.diffpriv.examples.from_approxis.prp_prf_weak
clutch.diffpriv.examples.from_approxis.rejection_samplers
clutch.diffpriv.examples.from_approxis.security_aux
clutch.diffpriv.examples.from_approxis.sum_seq
clutch.diffpriv.examples.from_approxis.symmetric
clutch.diffpriv.examples.from_approxis.von_neumann_coin
clutch.diffpriv.examples.from_approxis.xor
clutch.elton.adequacy
clutch.elton.derived_laws
clutch.elton.ectx_lifting
clutch.elton.elton
clutch.elton.error_rules
clutch.elton.lifting
clutch.elton.primitive_laws
clutch.elton.proofmode
clutch.elton.pupd
clutch.elton.rupd
clutch.elton.weakestpre
- One step prog coupl
- The weakest precondition
- Value promotion makes this rule hard to prove
- Derived rules
clutch.elton.examples.basic_hash
- Start of first case of disjunction
- End of first case of disjunction
- Start of second case of disjunction
- End of second case of disjunction
clutch.elton.examples.generic_group
clutch.elton.examples.guess
clutch.elton.examples.hash
clutch.elton.examples.hash_guess
clutch.elton.examples.multiple_guess
clutch.elton.examples.prophecy
clutch.elton.examples.repeat_flip
clutch.elton.examples.repeat_flip_neg
clutch.elton.examples.repeat_neg
clutch.elton.lib.flip
clutch.elton.lib.map
clutch.elton.unary_rel.unary_app_rel_rules
clutch.elton.unary_rel.unary_compatibility
clutch.elton.unary_rel.unary_fundamental
clutch.elton.unary_rel.unary_interp
clutch.elton.unary_rel.unary_model
clutch.elton.unary_rel.unary_rel_tactics
clutch.eris.adequacy
clutch.eris.array_laws
clutch.eris.derived_laws
clutch.eris.ectx_lifting
clutch.eris.eris
clutch.eris.error_rules
clutch.eris.lifting
clutch.eris.presample_rules
clutch.eris.primitive_laws
clutch.eris.proofmode
clutch.eris.seq_amplification
clutch.eris.total_adequacy
clutch.eris.total_derived_laws
clutch.eris.total_ectx_lifting
clutch.eris.total_lifting
clutch.eris.total_primitive_laws
clutch.eris.total_weakestpre
clutch.eris.weakestpre
clutch.eris.examples.cf_hash
clutch.eris.examples.cf_hashmap
clutch.eris.examples.dynamic_vec
clutch.eris.examples.eris_examples
clutch.eris.examples.fisher_yates
clutch.eris.examples.golden_toss
clutch.eris.examples.hash
clutch.eris.examples.miller_rabin
clutch.eris.examples.noproph
clutch.eris.examples.random_walk
clutch.eris.examples.rec_toss
clutch.eris.examples.spline
- Examples related to rejection samplers with a bounded number of attempts
- Example 5.4 from "A New Proof Rule for Almost-Sure Termination" by McIver et al.
clutch.eris.examples.approximate_samplers.approx_higherorder_incremental
clutch.eris.examples.approximate_samplers.approx_higherorder_rejection_sampler
clutch.eris.examples.approximate_samplers.approx_rejection_sampler
- Examples related to rejection samplers with a bounded number of attempts
- Correctness of bounded and unbounded rejection samplers using error credits instead of Löb induction
clutch.eris.examples.approximate_samplers.approx_rejection_sampler_presampled
clutch.eris.examples.approximate_samplers.approx_sampler_lib
clutch.eris.examples.approximate_samplers.approx_walkSAT
clutch.eris.examples.merkle.merkle_tree
clutch.eris.examples.merkle.unreliable
clutch.eris.lib.array
- array_free, to deallocate an entire array in one go.
- array_copy_to, a function which copies to an array in-place.
- Using array_copy_to we also implement array_clone, which allocates a fresh
- array_init, to create and initialize an array with a given
clutch.eris.lib.list
clutch.eris.lib.map
clutch.eris.tutorial.basic
clutch.eris.tutorial.basic_eris
clutch.eris.tutorial.bloom_filter_multi
clutch.eris.tutorial.bloom_filter_single
clutch.eris.tutorial.eris_rules
clutch.eris.tutorial.eris_tutorial
clutch.eris.tutorial.geometric
clutch.eris.tutorial.geometric_total
clutch.eris.tutorial.hash_interface
clutch.eris.tutorial.quicksort
clutch.eris.tutorial.tutorial
clutch.foxtrot.adequacy
clutch.foxtrot.coneris_relate
clutch.foxtrot.coupling_rules
- Coupling rules
- rand(N) ~ rand(N) coupling
- Coupling a rand on LHS with two rands on the RHS
- Lemmas for von neumann coin example
- Lemmas for associativity of probabilitic choice
- Exact couplings
- rand(α, N) ~ rand(α, N) wrong bound coupling
clutch.foxtrot.derived_laws
clutch.foxtrot.ectx_lifting
clutch.foxtrot.error_rules
clutch.foxtrot.foxtrot
clutch.foxtrot.full_info
clutch.foxtrot.lifting
clutch.foxtrot.oscheduler
clutch.foxtrot.primitive_laws
clutch.foxtrot.proofmode
clutch.foxtrot.pupd
clutch.foxtrot.weakestpre
clutch.foxtrot.binary_rel.binary_adequacy_rel
clutch.foxtrot.binary_rel.binary_app_rel_rules
clutch.foxtrot.binary_rel.binary_compatibility
clutch.foxtrot.binary_rel.binary_fundamental
clutch.foxtrot.binary_rel.binary_interp
clutch.foxtrot.binary_rel.binary_model
clutch.foxtrot.binary_rel.binary_rel_tactics
clutch.foxtrot.binary_rel.binary_soundness
clutch.foxtrot.examples.algebraic
clutch.foxtrot.examples.batch_sampling
clutch.foxtrot.examples.batch_sampling_seq
clutch.foxtrot.examples.encryption
clutch.foxtrot.examples.encryption_unknown
clutch.foxtrot.examples.entropy_mixer
clutch.foxtrot.examples.libsodium
clutch.foxtrot.examples.nodet_example
clutch.foxtrot.examples.presample_rhs
clutch.foxtrot.examples.rejection_samplers
clutch.foxtrot.examples.von_neumann
clutch.foxtrot.lib.conversion
clutch.foxtrot.lib.diverge
clutch.foxtrot.lib.min
clutch.foxtrot.lib.nodet
clutch.foxtrot.lib.or
clutch.foxtrot.lib.par
clutch.foxtrot.lib.sampler
clutch.foxtrot.lib.spawn
clutch.foxtrot.lib.toss
clutch.foxtrot.unary_rel.unary_app_rel_rules
clutch.foxtrot.unary_rel.unary_compatibility
clutch.foxtrot.unary_rel.unary_fundamental
clutch.foxtrot.unary_rel.unary_interp
clutch.foxtrot.unary_rel.unary_model
clutch.foxtrot.unary_rel.unary_rel_tactics
clutch.meas_lang.class_instances
clutch.meas_lang.ctx_subst
clutch.meas_lang.ectx_language
clutch.meas_lang.ectxi_language
clutch.meas_lang.erasable
clutch.meas_lang.erasure
clutch.meas_lang.exec
clutch.meas_lang.exec_lang
clutch.meas_lang.lang
clutch.meas_lang.language
clutch.meas_lang.metatheory
- state_step(α, N) ~ state_step(α', N) coupling
- Generalized state_step(α) ~ state_step(α') coupling
- rand(unit, N) ~ state_step(α', N) coupling
- state_step(α, N) ~ rand(unit, N) coupling
- e1 ~ rand(α', N) coupling for α' ↪ₛ (N, ☐)
- Approximate rand(N) ~ rand(M) coupling, N <= M
- Approximate rand(N) ~ rand(M) coupling, N <= M, along an injection
- Approximate rand(N) ~ rand(M) coupling, M <= N
- Approximate rand(N) ~ rand(M) coupling, M <= N, along an injection
- Approximate state_step(α, N) ~ state_step(α', N) coupling
- a coupling between rand n and rand n avoiding results from a list
- state_step ~ fair_coin
- state_step ≫= state_step ~ dprod fair_coin fair_coin
clutch.meas_lang.notation
clutch.meas_lang.tactics
clutch.meas_lang.wp_tactics
clutch.prelude.Coquelicot_ext
clutch.prelude.NNRbar
clutch.prelude.Reals_ext
clutch.prelude.Series_ext
clutch.prelude.asubst
clutch.prelude.base
clutch.prelude.classical
clutch.prelude.fiber_bounds
clutch.prelude.fin
clutch.prelude.iris_ext
clutch.prelude.mc_stdlib
clutch.prelude.properness
clutch.prelude.stdpp_ext
clutch.prelude.tactics
clutch.prelude.uniform_list
clutch.prelude.zmodp_fin
clutch.prob.countable_sum
clutch.prob.couplings
clutch.prob.couplings_app
clutch.prob.couplings_dp
clutch.prob.couplings_dp_complete
clutch.prob.couplings_exp
clutch.prob.couplings_kanto
clutch.prob.differential_privacy
clutch.prob.diffpriv_facts
clutch.prob.distribution
- Sum-swapping equalities for distributions
- Monadic return
- Monadic bind
- Lemmas about the interplay of monadic bind and return
- Monadic map
- Monadic strength
- Monadic fold left
- Monadic itereration
- Coins
- The zero distribution
- Diagonal
- Products
- swap
- Marginals
- Pointwise order
- Scaled distribution
- Limit distribution
- Uniform sampling
clutch.prob.generic_lifting
clutch.prob.graded_predicate_lifting
clutch.prob.markov
- Markov Chains
- Strict partial evaluation
- Non-strict partial evaluation
- Stratified evaluation to a final state
- Full evaluation (limit of stratification)
- Iterated Markov chain
- Ranking Supermartingales
clutch.prob.mdp
clutch.prob.monad.bind
clutch.prob.monad.compose
clutch.prob.monad.const
clutch.prob.monad.discrete_mapout
clutch.prob.monad.eval
clutch.prob.monad.examples
clutch.prob.monad.extras
clutch.prob.monad.identity
clutch.prob.monad.integrate
clutch.prob.monad.join
clutch.prob.monad.laws
clutch.prob.monad.map
clutch.prob.monad.ret
clutch.prob.monad.types
clutch.prob.monad.uniform
clutch.prob.monad.zero
clutch.prob_lang.advantage
clutch.prob_lang.class_instances
clutch.prob_lang.ctx_subst
clutch.prob_lang.erasure
clutch.prob_lang.exec_lang
clutch.prob_lang.lang
clutch.prob_lang.metatheory
- rand(N) ~ rand(N) coupling
- rand(N, α1) ~ rand(N, α2) coupling, "wrong" N
- rand(N,α) ~ rand(N) coupling, "wrong" N
- rand(N) ~ rand(N, α) coupling, "wrong" N
- state_step(α, N) ~ state_step(α', N) coupling
- Generalized state_step(α) ~ state_step(α') coupling
- rand(unit, N) ~ state_step(α', N) coupling
- state_step(α, N) ~ rand(unit, N) coupling
- e1 ~ rand(α', N) coupling for α' ↪ₛ (N, ☐)
- Approximate rand(N) ~ rand(M) coupling, N <= M
- Approximate rand(N) ~ rand(M) coupling, N <= M, along an injection
- Approximate rand(N) ~ rand(M) coupling, M <= N
- Approximate rand(N) ~ rand(M) coupling, M <= N, along an injection
- Approximate state_step(α, N) ~ state_step(α', N) coupling
- a coupling between rand n and rand n avoiding results from a list
- state_step ~ fair_coin
- state_step ≫= state_step ~ dprod fair_coin fair_coin