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)