Skip to main content

🎛️ Constants_parametric_repr.v

Translated OCaml

See proofs, Gitlab , OCaml

File generated by coq-of-ocaml
Require Import CoqOfOCaml.CoqOfOCaml.
Require Import CoqOfOCaml.Settings.

Require Import TezosOfOCaml.Environment.V8.
Require TezosOfOCaml.Proto_alpha.Gas_limit_repr.
Require TezosOfOCaml.Proto_alpha.Period_repr.
Require TezosOfOCaml.Proto_alpha.Ratio_repr.
Require TezosOfOCaml.Proto_alpha.State_hash.
Require TezosOfOCaml.Proto_alpha.Tez_repr.

Module dal.
  Record record : Set := Build {
    feature_enable : bool;
    number_of_slots : int;
    attestation_lag : int;
    availability_threshold : int;
    cryptobox_parameters : Dal.parameters;
  }.
  Definition with_feature_enable feature_enable (r : record) :=
    Build feature_enable r.(number_of_slots) r.(attestation_lag)
      r.(availability_threshold) r.(cryptobox_parameters).
  Definition with_number_of_slots number_of_slots (r : record) :=
    Build r.(feature_enable) number_of_slots r.(attestation_lag)
      r.(availability_threshold) r.(cryptobox_parameters).
  Definition with_attestation_lag attestation_lag (r : record) :=
    Build r.(feature_enable) r.(number_of_slots) attestation_lag
      r.(availability_threshold) r.(cryptobox_parameters).
  Definition with_availability_threshold availability_threshold (r : record) :=
    Build r.(feature_enable) r.(number_of_slots) r.(attestation_lag)
      availability_threshold r.(cryptobox_parameters).
  Definition with_cryptobox_parameters cryptobox_parameters (r : record) :=
    Build r.(feature_enable) r.(number_of_slots) r.(attestation_lag)
      r.(availability_threshold) cryptobox_parameters.
End dal.
Definition dal := dal.record.

Definition dal_encoding : Data_encoding.encoding dal :=
  Data_encoding.conv
    (fun (function_parameter : dal) ⇒
      let '{|
        dal.feature_enable := feature_enable;
          dal.number_of_slots := number_of_slots;
          dal.attestation_lag := attestation_lag;
          dal.availability_threshold := availability_threshold;
          dal.cryptobox_parameters := cryptobox_parameters
          |} := function_parameter in
      ((feature_enable, number_of_slots, attestation_lag, availability_threshold),
        cryptobox_parameters))
    (fun (function_parameter : (bool × int × int × int) × Dal.parameters) ⇒
      let
        '((feature_enable, number_of_slots, attestation_lag,
          availability_threshold), cryptobox_parameters) := function_parameter
        in
      {| dal.feature_enable := feature_enable;
        dal.number_of_slots := number_of_slots;
        dal.attestation_lag := attestation_lag;
        dal.availability_threshold := availability_threshold;
        dal.cryptobox_parameters := cryptobox_parameters; |}) None
    (Data_encoding.merge_objs
      (Data_encoding.obj4
        (Data_encoding.req None None "feature_enable" Data_encoding.bool_value)
        (Data_encoding.req None None "number_of_slots" Data_encoding.int16)
        (Data_encoding.req None None "attestation_lag" Data_encoding.int16)
        (Data_encoding.req None None "availability_threshold"
          Data_encoding.int16)) Dal.parameters_encoding).

Module tx_rollup.
  Record record : Set := Build {
    enable : bool;
    origination_size : int;
    hard_size_limit_per_inbox : int;
    hard_size_limit_per_message : int;
    commitment_bond : Tez_repr.t;
    finality_period : int;
    withdraw_period : int;
    max_inboxes_count : int;
    max_messages_per_inbox : int;
    max_commitments_count : int;
    cost_per_byte_ema_factor : int;
    max_ticket_payload_size : int;
    max_withdrawals_per_batch : int;
    rejection_max_proof_size : int;
    sunset_level : int32;
  }.
  Definition with_enable enable (r : record) :=
    Build enable r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_origination_size origination_size (r : record) :=
    Build r.(enable) origination_size r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_hard_size_limit_per_inbox hard_size_limit_per_inbox
    (r : record) :=
    Build r.(enable) r.(origination_size) hard_size_limit_per_inbox
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_hard_size_limit_per_message hard_size_limit_per_message
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      hard_size_limit_per_message r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_commitment_bond commitment_bond (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) commitment_bond r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_finality_period finality_period (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) finality_period
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_withdraw_period withdraw_period (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      withdraw_period r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_max_inboxes_count max_inboxes_count (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) max_inboxes_count r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_max_messages_per_inbox max_messages_per_inbox (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) max_messages_per_inbox
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_max_commitments_count max_commitments_count (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      max_commitments_count r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_cost_per_byte_ema_factor cost_per_byte_ema_factor
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) cost_per_byte_ema_factor
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_max_ticket_payload_size max_ticket_payload_size
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      max_ticket_payload_size r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_max_withdrawals_per_batch max_withdrawals_per_batch
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) max_withdrawals_per_batch
      r.(rejection_max_proof_size) r.(sunset_level).
  Definition with_rejection_max_proof_size rejection_max_proof_size
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      rejection_max_proof_size r.(sunset_level).
  Definition with_sunset_level sunset_level (r : record) :=
    Build r.(enable) r.(origination_size) r.(hard_size_limit_per_inbox)
      r.(hard_size_limit_per_message) r.(commitment_bond) r.(finality_period)
      r.(withdraw_period) r.(max_inboxes_count) r.(max_messages_per_inbox)
      r.(max_commitments_count) r.(cost_per_byte_ema_factor)
      r.(max_ticket_payload_size) r.(max_withdrawals_per_batch)
      r.(rejection_max_proof_size) sunset_level.
End tx_rollup.
Definition tx_rollup := tx_rollup.record.

Module sc_rollup.
  Record record : Set := Build {
    enable : bool;
    origination_size : int;
    challenge_window_in_blocks : int;
    max_number_of_messages_per_commitment_period : int;
    stake_amount : Tez_repr.t;
    commitment_period_in_blocks : int;
    max_lookahead_in_blocks : int32;
    max_active_outbox_levels : int32;
    max_outbox_messages_per_level : int;
    number_of_sections_in_dissection : int;
    timeout_period_in_blocks : int;
    max_number_of_stored_cemented_commitments : int;
  }.
  Definition with_enable enable (r : record) :=
    Build enable r.(origination_size) r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_origination_size origination_size (r : record) :=
    Build r.(enable) origination_size r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_challenge_window_in_blocks challenge_window_in_blocks
    (r : record) :=
    Build r.(enable) r.(origination_size) challenge_window_in_blocks
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_max_number_of_messages_per_commitment_period
    max_number_of_messages_per_commitment_period (r : record) :=
    Build r.(enable) r.(origination_size) r.(challenge_window_in_blocks)
      max_number_of_messages_per_commitment_period r.(stake_amount)
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_stake_amount stake_amount (r : record) :=
    Build r.(enable) r.(origination_size) r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) stake_amount
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_commitment_period_in_blocks commitment_period_in_blocks
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      commitment_period_in_blocks r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_max_lookahead_in_blocks max_lookahead_in_blocks
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      r.(commitment_period_in_blocks) max_lookahead_in_blocks
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_max_active_outbox_levels max_active_outbox_levels
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      max_active_outbox_levels r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_max_outbox_messages_per_level max_outbox_messages_per_level
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) max_outbox_messages_per_level
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_number_of_sections_in_dissection
    number_of_sections_in_dissection (r : record) :=
    Build r.(enable) r.(origination_size) r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      number_of_sections_in_dissection r.(timeout_period_in_blocks)
      r.(max_number_of_stored_cemented_commitments).
  Definition with_timeout_period_in_blocks timeout_period_in_blocks
    (r : record) :=
    Build r.(enable) r.(origination_size) r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) timeout_period_in_blocks
      r.(max_number_of_stored_cemented_commitments).
  Definition with_max_number_of_stored_cemented_commitments
    max_number_of_stored_cemented_commitments (r : record) :=
    Build r.(enable) r.(origination_size) r.(challenge_window_in_blocks)
      r.(max_number_of_messages_per_commitment_period) r.(stake_amount)
      r.(commitment_period_in_blocks) r.(max_lookahead_in_blocks)
      r.(max_active_outbox_levels) r.(max_outbox_messages_per_level)
      r.(number_of_sections_in_dissection) r.(timeout_period_in_blocks)
      max_number_of_stored_cemented_commitments.
End sc_rollup.
Definition sc_rollup := sc_rollup.record.

Module zk_rollup.
  Record record : Set := Build {
    enable : bool;
    origination_size : int;
    min_pending_to_process : int;
  }.
  Definition with_enable enable (r : record) :=
    Build enable r.(origination_size) r.(min_pending_to_process).
  Definition with_origination_size origination_size (r : record) :=
    Build r.(enable) origination_size r.(min_pending_to_process).
  Definition with_min_pending_to_process min_pending_to_process (r : record) :=
    Build r.(enable) r.(origination_size) min_pending_to_process.
End zk_rollup.
Definition zk_rollup := zk_rollup.record.

Module t.
  Record record : Set := Build {
    preserved_cycles : int;
    blocks_per_cycle : int32;
    blocks_per_commitment : int32;
    nonce_revelation_threshold : int32;
    blocks_per_stake_snapshot : int32;
    cycles_per_voting_period : int32;
    hard_gas_limit_per_operation : Gas_limit_repr.Arith.integral;
    hard_gas_limit_per_block : Gas_limit_repr.Arith.integral;
    proof_of_work_threshold : int64;
    minimal_stake : Tez_repr.t;
    vdf_difficulty : int64;
    seed_nonce_revelation_tip : Tez_repr.t;
    origination_size : int;
    baking_reward_fixed_portion : Tez_repr.t;
    baking_reward_bonus_per_slot : Tez_repr.t;
    endorsing_reward_per_slot : Tez_repr.t;
    cost_per_byte : Tez_repr.t;
    hard_storage_limit_per_operation : Z.t;
    quorum_min : int32;
    quorum_max : int32;
    min_proposal_quorum : int32;
    liquidity_baking_subsidy : Tez_repr.t;
    liquidity_baking_toggle_ema_threshold : int32;
    max_operations_time_to_live : int;
    minimal_block_delay : Period_repr.t;
    delay_increment_per_round : Period_repr.t;
    minimal_participation_ratio : Ratio_repr.t;
    consensus_committee_size : int;
    consensus_threshold : int;
    max_slashing_period : int;
    frozen_deposits_percentage : int;
    double_baking_punishment : Tez_repr.t;
    ratio_of_frozen_deposits_slashed_per_double_endorsement : Ratio_repr.t;
    testnet_dictator : option Signature.public_key_hash;
    initial_seed : option State_hash.t;
    cache_script_size : int;
    cache_stake_distribution_cycles : int;
    cache_sampler_state_cycles : int;
    tx_rollup : tx_rollup;
    dal : dal;
    sc_rollup : sc_rollup;
    zk_rollup : zk_rollup;
  }.
  Definition with_preserved_cycles preserved_cycles (r : record) :=
    Build preserved_cycles r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_blocks_per_cycle blocks_per_cycle (r : record) :=
    Build r.(preserved_cycles) blocks_per_cycle r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_blocks_per_commitment blocks_per_commitment (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) blocks_per_commitment
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_nonce_revelation_threshold nonce_revelation_threshold
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      nonce_revelation_threshold r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_blocks_per_stake_snapshot blocks_per_stake_snapshot
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) blocks_per_stake_snapshot
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_cycles_per_voting_period cycles_per_voting_period
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      cycles_per_voting_period r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_hard_gas_limit_per_operation hard_gas_limit_per_operation
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) hard_gas_limit_per_operation
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_hard_gas_limit_per_block hard_gas_limit_per_block
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      hard_gas_limit_per_block r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_proof_of_work_threshold proof_of_work_threshold
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) proof_of_work_threshold r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_minimal_stake minimal_stake (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) minimal_stake
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_vdf_difficulty vdf_difficulty (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      vdf_difficulty r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_seed_nonce_revelation_tip seed_nonce_revelation_tip
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) seed_nonce_revelation_tip r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_origination_size origination_size (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) origination_size
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_baking_reward_fixed_portion baking_reward_fixed_portion
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      baking_reward_fixed_portion r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_baking_reward_bonus_per_slot baking_reward_bonus_per_slot
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) baking_reward_bonus_per_slot
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_endorsing_reward_per_slot endorsing_reward_per_slot
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      endorsing_reward_per_slot r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_cost_per_byte cost_per_byte (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) cost_per_byte
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_hard_storage_limit_per_operation
    hard_storage_limit_per_operation (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      hard_storage_limit_per_operation r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_quorum_min quorum_min (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) quorum_min r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_quorum_max quorum_max (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) quorum_max
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_min_proposal_quorum min_proposal_quorum (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      min_proposal_quorum r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_liquidity_baking_subsidy liquidity_baking_subsidy
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) liquidity_baking_subsidy
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_liquidity_baking_toggle_ema_threshold
    liquidity_baking_toggle_ema_threshold (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      liquidity_baking_toggle_ema_threshold r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_max_operations_time_to_live max_operations_time_to_live
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) max_operations_time_to_live
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_minimal_block_delay minimal_block_delay (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      minimal_block_delay r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_delay_increment_per_round delay_increment_per_round
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) delay_increment_per_round
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_minimal_participation_ratio minimal_participation_ratio
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      minimal_participation_ratio r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_consensus_committee_size consensus_committee_size
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) consensus_committee_size
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_consensus_threshold consensus_threshold (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      consensus_threshold r.(max_slashing_period) r.(frozen_deposits_percentage)
      r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_max_slashing_period max_slashing_period (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) max_slashing_period r.(frozen_deposits_percentage)
      r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_frozen_deposits_percentage frozen_deposits_percentage
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period) frozen_deposits_percentage
      r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_double_baking_punishment double_baking_punishment
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) double_baking_punishment
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_ratio_of_frozen_deposits_slashed_per_double_endorsement
    ratio_of_frozen_deposits_slashed_per_double_endorsement (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      ratio_of_frozen_deposits_slashed_per_double_endorsement
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_testnet_dictator testnet_dictator (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      testnet_dictator r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_initial_seed initial_seed (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) initial_seed r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_cache_script_size cache_script_size (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) cache_script_size
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_cache_stake_distribution_cycles
    cache_stake_distribution_cycles (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      cache_stake_distribution_cycles r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_cache_sampler_state_cycles cache_sampler_state_cycles
    (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) cache_sampler_state_cycles
      r.(tx_rollup) r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_tx_rollup tx_rollup (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      tx_rollup r.(dal) r.(sc_rollup) r.(zk_rollup).
  Definition with_dal dal (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) dal r.(sc_rollup) r.(zk_rollup).
  Definition with_sc_rollup sc_rollup (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) sc_rollup r.(zk_rollup).
  Definition with_zk_rollup zk_rollup (r : record) :=
    Build r.(preserved_cycles) r.(blocks_per_cycle) r.(blocks_per_commitment)
      r.(nonce_revelation_threshold) r.(blocks_per_stake_snapshot)
      r.(cycles_per_voting_period) r.(hard_gas_limit_per_operation)
      r.(hard_gas_limit_per_block) r.(proof_of_work_threshold) r.(minimal_stake)
      r.(vdf_difficulty) r.(seed_nonce_revelation_tip) r.(origination_size)
      r.(baking_reward_fixed_portion) r.(baking_reward_bonus_per_slot)
      r.(endorsing_reward_per_slot) r.(cost_per_byte)
      r.(hard_storage_limit_per_operation) r.(quorum_min) r.(quorum_max)
      r.(min_proposal_quorum) r.(liquidity_baking_subsidy)
      r.(liquidity_baking_toggle_ema_threshold) r.(max_operations_time_to_live)
      r.(minimal_block_delay) r.(delay_increment_per_round)
      r.(minimal_participation_ratio) r.(consensus_committee_size)
      r.(consensus_threshold) r.(max_slashing_period)
      r.(frozen_deposits_percentage) r.(double_baking_punishment)
      r.(ratio_of_frozen_deposits_slashed_per_double_endorsement)
      r.(testnet_dictator) r.(initial_seed) r.(cache_script_size)
      r.(cache_stake_distribution_cycles) r.(cache_sampler_state_cycles)
      r.(tx_rollup) r.(dal) r.(sc_rollup) zk_rollup.
End t.
Definition t := t.record.

Definition tx_rollup_encoding : Data_encoding.encoding tx_rollup :=
  Data_encoding.conv
    (fun (c_value : tx_rollup) ⇒
      ((c_value.(tx_rollup.enable), c_value.(tx_rollup.origination_size),
        c_value.(tx_rollup.hard_size_limit_per_inbox),
        c_value.(tx_rollup.hard_size_limit_per_message),
        c_value.(tx_rollup.max_withdrawals_per_batch),
        c_value.(tx_rollup.commitment_bond),
        c_value.(tx_rollup.finality_period),
        c_value.(tx_rollup.withdraw_period),
        c_value.(tx_rollup.max_inboxes_count),
        c_value.(tx_rollup.max_messages_per_inbox)),
        (c_value.(tx_rollup.max_commitments_count),
          c_value.(tx_rollup.cost_per_byte_ema_factor),
          c_value.(tx_rollup.max_ticket_payload_size),
          c_value.(tx_rollup.rejection_max_proof_size),
          c_value.(tx_rollup.sunset_level))))
    (fun (function_parameter :
      (bool × int × int × int × int × Tez_repr.t × int × int × int × int) ×
        (int × int × int × int × int32)) ⇒
      let
        '((tx_rollup_enable, tx_rollup_origination_size,
          tx_rollup_hard_size_limit_per_inbox,
          tx_rollup_hard_size_limit_per_message,
          tx_rollup_max_withdrawals_per_batch, tx_rollup_commitment_bond,
          tx_rollup_finality_period, tx_rollup_withdraw_period,
          tx_rollup_max_inboxes_count, tx_rollup_max_messages_per_inbox),
          (tx_rollup_max_commitments_count, tx_rollup_cost_per_byte_ema_factor,
            tx_rollup_max_ticket_payload_size,
            tx_rollup_rejection_max_proof_size, tx_rollup_sunset_level)) :=
        function_parameter in
      {| tx_rollup.enable := tx_rollup_enable;
        tx_rollup.origination_size := tx_rollup_origination_size;
        tx_rollup.hard_size_limit_per_inbox :=
          tx_rollup_hard_size_limit_per_inbox;
        tx_rollup.hard_size_limit_per_message :=
          tx_rollup_hard_size_limit_per_message;
        tx_rollup.commitment_bond := tx_rollup_commitment_bond;
        tx_rollup.finality_period := tx_rollup_finality_period;
        tx_rollup.withdraw_period := tx_rollup_withdraw_period;
        tx_rollup.max_inboxes_count := tx_rollup_max_inboxes_count;
        tx_rollup.max_messages_per_inbox := tx_rollup_max_messages_per_inbox;
        tx_rollup.max_commitments_count := tx_rollup_max_commitments_count;
        tx_rollup.cost_per_byte_ema_factor :=
          tx_rollup_cost_per_byte_ema_factor;
        tx_rollup.max_ticket_payload_size := tx_rollup_max_ticket_payload_size;
        tx_rollup.max_withdrawals_per_batch :=
          tx_rollup_max_withdrawals_per_batch;
        tx_rollup.rejection_max_proof_size :=
          tx_rollup_rejection_max_proof_size;
        tx_rollup.sunset_level := tx_rollup_sunset_level; |}) None
    (Data_encoding.merge_objs
      (Data_encoding.obj10
        (Data_encoding.req None None "tx_rollup_enable" Data_encoding.bool_value)
        (Data_encoding.req None None "tx_rollup_origination_size"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_hard_size_limit_per_inbox"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_hard_size_limit_per_message"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_max_withdrawals_per_batch"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_commitment_bond"
          Tez_repr.encoding)
        (Data_encoding.req None None "tx_rollup_finality_period"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_withdraw_period"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_max_inboxes_count"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_max_messages_per_inbox"
          Data_encoding.int31))
      (Data_encoding.obj5
        (Data_encoding.req None None "tx_rollup_max_commitments_count"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_cost_per_byte_ema_factor"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_max_ticket_payload_size"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_rejection_max_proof_size"
          Data_encoding.int31)
        (Data_encoding.req None None "tx_rollup_sunset_level"
          Data_encoding.int32_value))).

Definition sc_rollup_encoding : Data_encoding.encoding sc_rollup :=
  Data_encoding.conv
    (fun (c_value : sc_rollup) ⇒
      ((c_value.(sc_rollup.enable), c_value.(sc_rollup.origination_size),
        c_value.(sc_rollup.challenge_window_in_blocks),
        c_value.(sc_rollup.max_number_of_messages_per_commitment_period),
        c_value.(sc_rollup.stake_amount),
        c_value.(sc_rollup.commitment_period_in_blocks),
        c_value.(sc_rollup.max_lookahead_in_blocks),
        c_value.(sc_rollup.max_active_outbox_levels),
        c_value.(sc_rollup.max_outbox_messages_per_level),
        c_value.(sc_rollup.number_of_sections_in_dissection)),
        (c_value.(sc_rollup.timeout_period_in_blocks),
          c_value.(sc_rollup.max_number_of_stored_cemented_commitments))))
    (fun (function_parameter :
      (bool × int × int × int × Tez_repr.t × int × int32 × int32 × int × int) ×
        (int × int)) ⇒
      let
        '((sc_rollup_enable, sc_rollup_origination_size,
          sc_rollup_challenge_window_in_blocks,
          sc_rollup_max_number_of_messages_per_commitment_period,
          sc_rollup_stake_amount, sc_rollup_commitment_period_in_blocks,
          sc_rollup_max_lookahead_in_blocks, sc_rollup_max_active_outbox_levels,
          sc_rollup_max_outbox_messages_per_level,
          sc_rollup_number_of_sections_in_dissection),
          (sc_rollup_timeout_period_in_blocks,
            sc_rollup_max_number_of_cemented_commitments)) := function_parameter
        in
      {| sc_rollup.enable := sc_rollup_enable;
        sc_rollup.origination_size := sc_rollup_origination_size;
        sc_rollup.challenge_window_in_blocks :=
          sc_rollup_challenge_window_in_blocks;
        sc_rollup.max_number_of_messages_per_commitment_period :=
          sc_rollup_max_number_of_messages_per_commitment_period;
        sc_rollup.stake_amount := sc_rollup_stake_amount;
        sc_rollup.commitment_period_in_blocks :=
          sc_rollup_commitment_period_in_blocks;
        sc_rollup.max_lookahead_in_blocks := sc_rollup_max_lookahead_in_blocks;
        sc_rollup.max_active_outbox_levels :=
          sc_rollup_max_active_outbox_levels;
        sc_rollup.max_outbox_messages_per_level :=
          sc_rollup_max_outbox_messages_per_level;
        sc_rollup.number_of_sections_in_dissection :=
          sc_rollup_number_of_sections_in_dissection;
        sc_rollup.timeout_period_in_blocks :=
          sc_rollup_timeout_period_in_blocks;
        sc_rollup.max_number_of_stored_cemented_commitments :=
          sc_rollup_max_number_of_cemented_commitments; |}) None
    (Data_encoding.merge_objs
      (Data_encoding.obj10
        (Data_encoding.req None None "sc_rollup_enable" Data_encoding.bool_value)
        (Data_encoding.req None None "sc_rollup_origination_size"
          Data_encoding.int31)
        (Data_encoding.req None None "sc_rollup_challenge_window_in_blocks"
          Data_encoding.int31)
        (Data_encoding.req None None
          "sc_rollup_max_number_of_messages_per_commitment_period"
          Data_encoding.int31)
        (Data_encoding.req None None "sc_rollup_stake_amount" Tez_repr.encoding)
        (Data_encoding.req None None "sc_rollup_commitment_period_in_blocks"
          Data_encoding.int31)
        (Data_encoding.req None None "sc_rollup_max_lookahead_in_blocks"
          Data_encoding.int32_value)
        (Data_encoding.req None None "sc_rollup_max_active_outbox_levels"
          Data_encoding.int32_value)
        (Data_encoding.req None None "sc_rollup_max_outbox_messages_per_level"
          Data_encoding.int31)
        (Data_encoding.req None None
          "sc_rollup_number_of_sections_in_dissection" Data_encoding.uint8))
      (Data_encoding.obj2
        (Data_encoding.req None None "sc_rollup_timeout_period_in_blocks"
          Data_encoding.int31)
        (Data_encoding.req None None
          "sc_rollup_max_number_of_cemented_commitments" Data_encoding.int31))).

Definition zk_rollup_encoding : Data_encoding.encoding zk_rollup :=
  Data_encoding.conv
    (fun (function_parameter : zk_rollup) ⇒
      let '{|
        zk_rollup.enable := enable;
          zk_rollup.origination_size := origination_size;
          zk_rollup.min_pending_to_process := min_pending_to_process
          |} := function_parameter in
      (enable, origination_size, min_pending_to_process))
    (fun (function_parameter : bool × int × int) ⇒
      let
        '(zk_rollup_enable, zk_rollup_origination_size,
          zk_rollup_min_pending_to_process) := function_parameter in
      {| zk_rollup.enable := zk_rollup_enable;
        zk_rollup.origination_size := zk_rollup_origination_size;
        zk_rollup.min_pending_to_process := zk_rollup_min_pending_to_process; |})
    None
    (Data_encoding.obj3
      (Data_encoding.req None None "zk_rollup_enable" Data_encoding.bool_value)
      (Data_encoding.req None None "zk_rollup_origination_size"
        Data_encoding.int31)
      (Data_encoding.req None None "zk_rollup_min_pending_to_process"
        Data_encoding.int31)).

Definition encoding : Data_encoding.encoding t :=
  Data_encoding.conv
    (fun (c_value : t) ⇒
      ((c_value.(t.preserved_cycles), c_value.(t.blocks_per_cycle),
        c_value.(t.blocks_per_commitment),
        c_value.(t.nonce_revelation_threshold),
        c_value.(t.blocks_per_stake_snapshot),
        c_value.(t.cycles_per_voting_period),
        c_value.(t.hard_gas_limit_per_operation),
        c_value.(t.hard_gas_limit_per_block),
        c_value.(t.proof_of_work_threshold), c_value.(t.minimal_stake)),
        ((c_value.(t.vdf_difficulty), c_value.(t.seed_nonce_revelation_tip),
          c_value.(t.origination_size), c_value.(t.baking_reward_fixed_portion),
          c_value.(t.baking_reward_bonus_per_slot),
          c_value.(t.endorsing_reward_per_slot), c_value.(t.cost_per_byte),
          c_value.(t.hard_storage_limit_per_operation), c_value.(t.quorum_min)),
          ((c_value.(t.quorum_max), c_value.(t.min_proposal_quorum),
            c_value.(t.liquidity_baking_subsidy),
            c_value.(t.liquidity_baking_toggle_ema_threshold),
            c_value.(t.max_operations_time_to_live),
            c_value.(t.minimal_block_delay),
            c_value.(t.delay_increment_per_round),
            c_value.(t.consensus_committee_size),
            c_value.(t.consensus_threshold)),
            ((c_value.(t.minimal_participation_ratio),
              c_value.(t.max_slashing_period),
              c_value.(t.frozen_deposits_percentage),
              c_value.(t.double_baking_punishment),
              c_value.(t.ratio_of_frozen_deposits_slashed_per_double_endorsement),
              c_value.(t.testnet_dictator), c_value.(t.initial_seed)),
              ((c_value.(t.cache_script_size),
                c_value.(t.cache_stake_distribution_cycles),
                c_value.(t.cache_sampler_state_cycles)),
                (c_value.(t.tx_rollup),
                  (c_value.(t.dal),
                    (c_value.(t.sc_rollup), c_value.(t.zk_rollup))))))))))
    (fun (function_parameter :
      (int × int32 × int32 × int32 × int32 × int32 ×
        Gas_limit_repr.Arith.integral × Gas_limit_repr.Arith.integral × int64 ×
        Tez_repr.t) ×
        ((int64 × Tez_repr.t × int × Tez_repr.t × Tez_repr.t × Tez_repr.t ×
          Tez_repr.t × Z.t × int32) ×
          ((int32 × int32 × Tez_repr.t × int32 × int × Period_repr.t ×
            Period_repr.t × int × int) ×
            ((Ratio_repr.t × int × int × Tez_repr.t × Ratio_repr.t ×
              option Signature.public_key_hash × option State_hash.t) ×
              ((int × int × int) × (tx_rollup × (dal × (sc_rollup × zk_rollup))))))))
      ⇒
      let
        '((preserved_cycles, blocks_per_cycle, blocks_per_commitment,
          nonce_revelation_threshold, blocks_per_stake_snapshot,
          cycles_per_voting_period, hard_gas_limit_per_operation,
          hard_gas_limit_per_block, proof_of_work_threshold, minimal_stake),
          ((vdf_difficulty, seed_nonce_revelation_tip, origination_size,
            baking_reward_fixed_portion, baking_reward_bonus_per_slot,
            endorsing_reward_per_slot, cost_per_byte,
            hard_storage_limit_per_operation, quorum_min),
            ((quorum_max, min_proposal_quorum, liquidity_baking_subsidy,
              liquidity_baking_toggle_ema_threshold,
              max_operations_time_to_live, minimal_block_delay,
              delay_increment_per_round, consensus_committee_size,
              consensus_threshold),
              ((minimal_participation_ratio, max_slashing_period,
                frozen_deposits_percentage, double_baking_punishment,
                ratio_of_frozen_deposits_slashed_per_double_endorsement,
                testnet_dictator, initial_seed),
                ((cache_script_size, cache_stake_distribution_cycles,
                  cache_sampler_state_cycles),
                  (tx_rollup, (dal, (sc_rollup, zk_rollup)))))))) :=
        function_parameter in
      {| t.preserved_cycles := preserved_cycles;
        t.blocks_per_cycle := blocks_per_cycle;
        t.blocks_per_commitment := blocks_per_commitment;
        t.nonce_revelation_threshold := nonce_revelation_threshold;
        t.blocks_per_stake_snapshot := blocks_per_stake_snapshot;
        t.cycles_per_voting_period := cycles_per_voting_period;
        t.hard_gas_limit_per_operation := hard_gas_limit_per_operation;
        t.hard_gas_limit_per_block := hard_gas_limit_per_block;
        t.proof_of_work_threshold := proof_of_work_threshold;
        t.minimal_stake := minimal_stake; t.vdf_difficulty := vdf_difficulty;
        t.seed_nonce_revelation_tip := seed_nonce_revelation_tip;
        t.origination_size := origination_size;
        t.baking_reward_fixed_portion := baking_reward_fixed_portion;
        t.baking_reward_bonus_per_slot := baking_reward_bonus_per_slot;
        t.endorsing_reward_per_slot := endorsing_reward_per_slot;
        t.cost_per_byte := cost_per_byte;
        t.hard_storage_limit_per_operation := hard_storage_limit_per_operation;
        t.quorum_min := quorum_min; t.quorum_max := quorum_max;
        t.min_proposal_quorum := min_proposal_quorum;
        t.liquidity_baking_subsidy := liquidity_baking_subsidy;
        t.liquidity_baking_toggle_ema_threshold :=
          liquidity_baking_toggle_ema_threshold;
        t.max_operations_time_to_live := max_operations_time_to_live;
        t.minimal_block_delay := minimal_block_delay;
        t.delay_increment_per_round := delay_increment_per_round;
        t.minimal_participation_ratio := minimal_participation_ratio;
        t.consensus_committee_size := consensus_committee_size;
        t.consensus_threshold := consensus_threshold;
        t.max_slashing_period := max_slashing_period;
        t.frozen_deposits_percentage := frozen_deposits_percentage;
        t.double_baking_punishment := double_baking_punishment;
        t.ratio_of_frozen_deposits_slashed_per_double_endorsement :=
          ratio_of_frozen_deposits_slashed_per_double_endorsement;
        t.testnet_dictator := testnet_dictator; t.initial_seed := initial_seed;
        t.cache_script_size := cache_script_size;
        t.cache_stake_distribution_cycles := cache_stake_distribution_cycles;
        t.cache_sampler_state_cycles := cache_sampler_state_cycles;
        t.tx_rollup := tx_rollup; t.dal := dal; t.sc_rollup := sc_rollup;
        t.zk_rollup := zk_rollup; |}) None
    (Data_encoding.merge_objs
      (Data_encoding.obj10
        (Data_encoding.req None None "preserved_cycles" Data_encoding.uint8)
        (Data_encoding.req None None "blocks_per_cycle"
          Data_encoding.int32_value)
        (Data_encoding.req None None "blocks_per_commitment"
          Data_encoding.int32_value)
        (Data_encoding.req None None "nonce_revelation_threshold"
          Data_encoding.int32_value)
        (Data_encoding.req None None "blocks_per_stake_snapshot"
          Data_encoding.int32_value)
        (Data_encoding.req None None "cycles_per_voting_period"
          Data_encoding.int32_value)
        (Data_encoding.req None None "hard_gas_limit_per_operation"
          Gas_limit_repr.Arith.z_integral_encoding)
        (Data_encoding.req None None "hard_gas_limit_per_block"
          Gas_limit_repr.Arith.z_integral_encoding)
        (Data_encoding.req None None "proof_of_work_threshold"
          Data_encoding.int64_value)
        (Data_encoding.req None None "minimal_stake" Tez_repr.encoding))
      (Data_encoding.merge_objs
        (Data_encoding.obj9
          (Data_encoding.req None None "vdf_difficulty"
            Data_encoding.int64_value)
          (Data_encoding.req None None "seed_nonce_revelation_tip"
            Tez_repr.encoding)
          (Data_encoding.req None None "origination_size" Data_encoding.int31)
          (Data_encoding.req None None "baking_reward_fixed_portion"
            Tez_repr.encoding)
          (Data_encoding.req None None "baking_reward_bonus_per_slot"
            Tez_repr.encoding)
          (Data_encoding.req None None "endorsing_reward_per_slot"
            Tez_repr.encoding)
          (Data_encoding.req None None "cost_per_byte" Tez_repr.encoding)
          (Data_encoding.req None None "hard_storage_limit_per_operation"
            Data_encoding.z_value)
          (Data_encoding.req None None "quorum_min" Data_encoding.int32_value))
        (Data_encoding.merge_objs
          (Data_encoding.obj9
            (Data_encoding.req None None "quorum_max" Data_encoding.int32_value)
            (Data_encoding.req None None "min_proposal_quorum"
              Data_encoding.int32_value)
            (Data_encoding.req None None "liquidity_baking_subsidy"
              Tez_repr.encoding)
            (Data_encoding.req None None "liquidity_baking_toggle_ema_threshold"
              Data_encoding.int32_value)
            (Data_encoding.req None None "max_operations_time_to_live"
              Data_encoding.int16)
            (Data_encoding.req None None "minimal_block_delay"
              Period_repr.encoding)
            (Data_encoding.req None None "delay_increment_per_round"
              Period_repr.encoding)
            (Data_encoding.req None None "consensus_committee_size"
              Data_encoding.int31)
            (Data_encoding.req None None "consensus_threshold"
              Data_encoding.int31))
          (Data_encoding.merge_objs
            (Data_encoding.obj7
              (Data_encoding.req None None "minimal_participation_ratio"
                Ratio_repr.encoding)
              (Data_encoding.req None None "max_slashing_period"
                Data_encoding.int31)
              (Data_encoding.req None None "frozen_deposits_percentage"
                Data_encoding.int31)
              (Data_encoding.req None None "double_baking_punishment"
                Tez_repr.encoding)
              (Data_encoding.req None None
                "ratio_of_frozen_deposits_slashed_per_double_endorsement"
                Ratio_repr.encoding)
              (Data_encoding.opt None None "testnet_dictator"
                Signature.Public_key_hash.(S.SIGNATURE_PUBLIC_KEY_HASH.encoding))
              (Data_encoding.opt None None "initial_seed" State_hash.encoding))
            (Data_encoding.merge_objs
              (Data_encoding.obj3
                (Data_encoding.req None None "cache_script_size"
                  Data_encoding.int31)
                (Data_encoding.req None None "cache_stake_distribution_cycles"
                  Data_encoding.int8)
                (Data_encoding.req None None "cache_sampler_state_cycles"
                  Data_encoding.int8))
              (Data_encoding.merge_objs tx_rollup_encoding
                (Data_encoding.merge_objs
                  (Data_encoding.obj1
                    (Data_encoding.req None None "dal_parametric" dal_encoding))
                  (Data_encoding.merge_objs sc_rollup_encoding
                    zk_rollup_encoding)))))))).