fact: Definition paintball_monitor := module import { "ADT"!"GetTiltX" ====> GetTiltXSpec; "ADT"!"GetTiltY" ====> GetTiltYSpec; "ADT"!"Node_Step" ====> Monitored_Node_StepSpec } define { def "init" = func() {"ret" <-- call_ "ADT"!"BuildUnit" () }; def "step" = func("node", "in", "out", "monitor_in", "monitor_out") { "tilt_x" <-- call_ "ADT"!"GetTiltX"("monitor_in"); "tilt_y" <-- call_ "ADT"!"GetTiltY"("monitor_in"); if_ ("tilt_x" < 10) { if_ ("tilt_y" < 20) { "ret" <-- call_ "ADT"!"Node_Step" ("node", "in", "out") } { "ret" <-- call_ "ADT"!"Node_Step" ("node", "in", "out") } } { "ret" <-- call_ "ADT"!"Node_Step" ("node", "in", "out") } } }.
imports: Coq.Lists.List Coq.Program.Program Coq.Arith.Arith Fiat.Fiat4Monitors.RADL_Definitions Fiat.Fiat4Monitors.TurretMonitorSpec Fiat.Fiat4Monitors.MonitorADTs Fiat.Fiat4Monitors.MonitorRepInv Fiat.ADT Fiat.ADT.ComputationalADT Fiat.ADTNotation Fiat.ADTRefinement Fiat.ADTRefinement.BuildADTRefinements Bedrock.Platform.Facade.DFacade Bedrock.Platform.Facade.Notations Bedrock.Platform.Cito.ADT Bedrock.Platform.Cito.RepInv