Skip to content

LIMS — all cases

Every case file under examples/lims/cases/, inlined. _pass cases should prove; _fail cases should be rejected by the prover.

See the curated walk-through for context on the trusted module and contract vocabulary.

examples/lims/cases/dbtl_campaign_pass.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import pipette, submit_protocol

import clauz3


@clauz3.guarantee(lims.only_plate("plate_42"))
@clauz3.guarantee(lims.reagent_volume_at_most("ATP", 500))
@clauz3.guarantee(lims.only_instruments(["qPCR-1"]))
@clauz3.guarantee(lims.total_runtime_at_most(10))
def main() -> None:
    for _ in range(8):
        pipette("plate_42", "A1", 50, "ATP")
    submit_protocol("qPCR-1", "plate_42", 4)

examples/lims/cases/lims_no_guarantees_pass.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import order_oligo, pipette, submit_protocol

import clauz3


@clauz3.guarantee(lims.no_guarantees())
def main() -> None:
    pipette("plate_99", "Z9", 200, "EtOH")
    submit_protocol("MassSpec-7", "plate_99", 12)
    order_oligo("ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT", 500)

examples/lims/cases/no_hazard_sequence_fail.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import order_oligo

import clauz3


@clauz3.guarantee(lims.no_hazard_sequence("GATTACA"))
def main() -> None:
    order_oligo("AAAGATTACATTT", 5)

examples/lims/cases/no_hazard_sequence_pass.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import order_oligo

import clauz3


@clauz3.guarantee(lims.no_hazard_sequence("GATTACA"))
@clauz3.guarantee(lims.oligo_length_at_most(60))
def main() -> None:
    order_oligo("ACGTACGTACGT", 10)

examples/lims/cases/only_instruments_fail.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import submit_protocol

import clauz3


@clauz3.guarantee(lims.only_instruments(["qPCR-1", "HPLC-3"]))
def main() -> None:
    submit_protocol("qPCR-1", "plate_42", 2)
    submit_protocol("MassSpec-7", "plate_42", 1)

examples/lims/cases/only_instruments_pass.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import submit_protocol

import clauz3


@clauz3.guarantee(lims.only_instruments(["qPCR-1", "HPLC-3"]))
def main() -> None:
    submit_protocol("qPCR-1", "plate_42", 2)
    submit_protocol("HPLC-3", "plate_42", 1)

examples/lims/cases/only_plate_fail.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import pipette

import clauz3


@clauz3.guarantee(lims.only_plate("plate_42"))
def main() -> None:
    pipette("plate_42", "A1", 50, "ATP")
    pipette("plate_99", "A1", 50, "ATP")

examples/lims/cases/only_plate_pass.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import pipette

import clauz3


@clauz3.guarantee(lims.only_plate("plate_42"))
def main() -> None:
    pipette("plate_42", "A1", 50, "ATP")
    pipette("plate_42", "A2", 50, "ATP")

examples/lims/cases/pipette_volume_precondition_fail.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import pipette

import clauz3


@clauz3.guarantee(lims.only_plate("plate_42"))
def main() -> None:
    pipette("plate_42", "A1", 500, "ATP")

examples/lims/cases/reagent_budget_fail.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import pipette

import clauz3


@clauz3.guarantee(lims.reagent_volume_at_most("ATP", 100))
def main() -> None:
    pipette("plate_42", "A1", 80, "ATP")
    pipette("plate_42", "A2", 80, "ATP")

examples/lims/cases/reagent_budget_pass.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import pipette

import clauz3


@clauz3.guarantee(lims.reagent_volume_at_most("ATP", 200))
def main() -> None:
    pipette("plate_42", "A1", 80, "ATP")
    pipette("plate_42", "A2", 80, "ATP")
    pipette("plate_42", "B1", 20, "tRNA")

examples/lims/cases/total_runtime_fail.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import submit_protocol

import clauz3


@clauz3.guarantee(lims.total_runtime_at_most(8))
def main() -> None:
    submit_protocol("qPCR-1", "plate_42", 5)
    submit_protocol("HPLC-3", "plate_42", 5)

examples/lims/cases/total_runtime_pass.py

# ruff: noqa: F821
from tools.lims.trusted import contracts as lims
from tools.lims.trusted.effects import submit_protocol

import clauz3


@clauz3.guarantee(lims.total_runtime_at_most(8))
def main() -> None:
    submit_protocol("qPCR-1", "plate_42", 3)
    submit_protocol("HPLC-3", "plate_42", 4)