{"id":18422459,"url":"https://github.com/sri-csl/wrappat","last_synced_at":"2026-01-22T18:43:56.825Z","repository":{"id":137662449,"uuid":"232857760","full_name":"SRI-CSL/WrapPat","owner":"SRI-CSL","description":null,"archived":false,"fork":false,"pushed_at":"2020-12-14T01:59:39.000Z","size":431,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-04-13T14:44:38.281Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SRI-CSL.png","metadata":{"files":{"readme":"README-modules.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-09T16:49:21.000Z","updated_at":"2020-12-14T01:59:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"4436f70d-7a07-4b27-b695-5047e7108eb8","html_url":"https://github.com/SRI-CSL/WrapPat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SRI-CSL/WrapPat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FWrapPat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FWrapPat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FWrapPat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FWrapPat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SRI-CSL","download_url":"https://codeload.github.com/SRI-CSL/WrapPat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FWrapPat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28668282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T17:07:18.858Z","status":"ssl_error","status_checked_at":"2026-01-22T17:05:02.040Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T04:30:12.926Z","updated_at":"2026-01-22T18:43:56.811Z","avatar_url":"https://github.com/SRI-CSL.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Module summary\n\n****** load.maude ***************************\n***************************\nbasics.maude\n\n  fmod ID \n    sorts Id \u003c Ids  FbC \u003c Cid \n\n  fmod MYATTRS \n    sorts MyAttr \u003c MyAttrs .\n\n***************************\nfb.maude  requires basics\n\n  fmod EVENTS is inc STRING .\n    sorts Event \u003c Events \n    op allEvents : -\u003e Events . \n    op ev : String -\u003e Event .\n  \n  fmod IO is inc STRING .  \n    sorts inEv outEv \u003c IO \u003c IOs\n          InEv \u003c Ins \u003c IOs\n          OutEv \u003c Outs \u003c IOs\n    op inEv : String -\u003e InEv .\n    op outEv : String -\u003e OutEv .\n    \n  fmod PORT is inc ID .  inc IO .\n    sorts Port \u003c Ports .\n    op {_,_} : Id IO -\u003e Port .\n    op {_,_} : Id Port -\u003e Port .\n    \n    sorts Link \u003c Links .\n    op {_,_} : Port Port -\u003e Link .\n\n  fmod EFFECTS is inc IO . inc EVENTS .\n    sort InEvEff \u003c InEvEffs .\n    sort OutEvEff \u003c OutEvEffs .\n    op _:~_ : InEv Event -\u003e InEvEff . \n    op _:~_ : OutEv Event -\u003e OutEvEff . \n\n  fmod COND is  inc EVENTS . inc IO . inc EFFECTS .\n    sort Cond  \n    ops tt ff : -\u003e  Cond .\n    op _is_ : InEv Event -\u003e Cond [ctor]. \n    op _and_ : Cond Cond -\u003e Cond [assoc comm] .\n    op _or_ : Cond Cond -\u003e Cond [assoc comm] .\n    op not_ : Cond -\u003e Cond .\n    op toNNF : Cond -\u003e Cond .\n    op _|=_ : InEvEffs Cond -\u003e Bool .\n\n  fmod TRANSITION is inc COND . \n    sort State \u003c States .\n    op st : String -\u003e State [ctor] .\n    sort Tr \u003c Trs .\n    op tr : State State Cond OutEvEffs -\u003e Tr [ctor] . \n    op filterTrs : Trs State Trs -\u003e Trs .\n\n  fmod FB is inc ID . inc TRANSITION .  inc MYATTRS .\n    sort FB \u003c FBs .\n    op [_:_|_] : Id FbC MyAttrs -\u003e FB [ctor] . \n    op state`:_ : State -\u003e MyAttr [ctor] .\n    op iEvEffs`:_ : InEvEffs -\u003e MyAttr [ctor] .\n    op oEvEffs`:_ : OutEvEffs -\u003e MyAttr [ctor] .\n    op ticked`:_ : Bool -\u003e MyAttr [ctor] .\n    op insFB : FbC -\u003e Ins .\n    op outsFB : FbC -\u003e Outs .\n    op trsFB : FbC -\u003e Trs .\n    op stsFB : FbC -\u003e States .\n    op trsFB : FbC State -\u003e Trs .\n\n***************************\nemessages.maude\n  fmod EMESSAGES is inc PORT . inc EVENTS .\n    sort EMsg \u003c EMsgs .\n    op {_,_} : Port Event -\u003e EMsg . \n    op size : EMsgs -\u003e Nat .\n    op mem : EMsgs EMsg -\u003e Bool .\n    op intersect : EMsgs EMsgs -\u003e EMsgs .\n    op subset : EMsgs EMsgs -\u003e Bool .\n \n    sort EMsgsSet .\n    op none : -\u003e EMsgsSet .\n    op {_} : EMsgs -\u003e EMsgsSet [ctor] .\n    op __ : EMsgsSet EMsgsSet -\u003e EMsgsSet [ctor comm assoc id: none] .\n    op size : EMsgsSet -\u003e Nat .\n    op addEMsgs : EMsgs EMsgs -\u003e EMsgs .\n    op flattenEMsgsSet : EMsgsSet EMsgs -\u003e EMsgs .\n\n  **** lists of emsgs sets, the intent is each list element\n  **** has sets of the same size\n    sort EMsgssList .\n    op nil : -\u003e EMsgssList .\n    op [_] : EMsgsSet -\u003e EMsgssList [ctor] .\n    op _;_ : EMsgssList EMsgssList -\u003e EMsgssList [ctor assoc id: nil] .\n    op len : EMsgssList -\u003e Nat .\n    op getNth : EMsgssList Nat -\u003e EMsgsSet .\n    op flattenEMsgssList : EMsgssList EMsgs -\u003e EMsgs .\n\n\n***************************\nsym-emessages.maude\n  fmod SYM-EMESSAGES is inc EMESSAGES .\n    subsort Sym-Event \u003c Event .\n    op sev : Nat Nat -\u003e Sym-Event . \n    sort Sym-Id \u003c Id .\n    op sid : Nat Nat -\u003e Sym-Id .\n    sort Sym-In \u003c InEv .\n    op sin : Nat Nat -\u003e Sym-In .\n    sort Sym-Out \u003c OutEv .\n    op sout : Nat Nat -\u003e Sym-Out .\n    sorts IK \u003c IKEle .\n    op ik : Event -\u003e IKEle .\n    sort SSB \u003c SSBs .\n    op _:~_ : Sym-Event Event -\u003e SSB .\n    op _:~_ : Sym-Id Id -\u003e SSB .\n    op _:~_ : Sym-In InEv -\u003e SSB .\n    op _:~_ : Sym-Out OutEv -\u003e SSB .\n    op _[_] : Event SSBs -\u003e Event .\n    op _[_] : Id SSBs -\u003e Id .\n    op _[_] : InEv SSBs -\u003e InEv .\n    op _[_] : OutEv SSBs -\u003e OutEv .\n    op _[_] : EMsg SSBs -\u003e EMsg .\n    op _[[_]] : EMsgs SSBs -\u003e EMsgs .\n\n***************************\nsym-transition.maude\n  fmod CONSTRAINTS is inc SYM-EMESSAGES . inc COND .\n    sort Constraint \u003c CSet .\n    op evc : InEv IK -\u003e Constraint .\n    sort CSetSet .\n    op [_] : CSet -\u003e CSetSet [ctor] .\n    op condToCSet : Cond  -\u003e CSetSet .\n\n  fmod SYM-TRANSITION is inc FB . inc CONSTRAINTS .\n    subsort SymTr \u003c SymTrs .\n    op symtr : State State CSetSet OutEvEffs -\u003e SymTr [ctor] . \n    op tr2symtr : Tr -\u003e SymTr .\n    op symtrsFB : Cid State -\u003e SymTrs .\n    \n  fmod GENSOL is inc SYM-TRANSITION .\n    sort SSBsSet .\n    op `{_`} : SSBs -\u003e SSBsSet [ctor] .\n    op genSol1 : Id EMsgs CSet -\u003e SSBsSet .\n    \n***************************\napp.maude\n  fmod APPLICATION is inc FB . inc SYM-EMESSAGES .\n    **** GLOBALS set in scenario\n    op appFBs : Id -\u003e Ids . **** computable\n    op appIns : Id -\u003e Ins .\n    op appOuts : Id -\u003e Outs .\n    op appLinks : Id -\u003e Links .\n  \n    sort Application .\n    op [_|_] : Id  MyAttrs -\u003e Application .\n    op fbs`:_ : FBs -\u003e MyAttr .\n    op iEMsgs`:_ : EMsgs -\u003e MyAttr .\n    op oEMsgs`:_ : EMsgs -\u003e MyAttr .\n    op ssbs`:_ : SSBs -\u003e MyAttr .\n\n    op updateFBs : Application FBs -\u003e Application .\n    op addAttr : Application MyAttrs -\u003e Application .\n    op setTicked : MyAttrs Bool -\u003e MyAttrs .\n    op setTicked : Application Bool -\u003e Application .\n    op getTicked :  MyAttrs -\u003e Bool .\n    op notApp : MyAttrs -\u003e Bool .\n\n    sort AppIntruder .\n    op [_,_] : Application EMsgs -\u003e AppIntruder .\n    \n  \n  fmod APP-AUX is inc APPLICATION . inc EMESSAGES . inc GENSOL .\n    op hasSol : FBs EMsgs -\u003e Bool .\n    sort EMsgsEMsgs .\n    op {_,_} : EMsgs EMsgs -\u003e EMsgsEMsgs [ctor] .\n    sort FBsEMsgsEMsgs .\n    op {_,_,_} : FBs EMsgs EMsgs -\u003e FBsEMsgsEMsgs [ctor] .\n    op extractOutMsgs : Bool FBs FBs EMsgs EMsgs Links \n                      -\u003e FBsEMsgsEMsgs .\n\n  mod APP-EXE is inc APP-AUX .\n    crl[app-exe1]\n    crl[app-exe2]\n    rl[app-intruder]\n\n***************************\nfb-lib.maude\n\n  fmod VACUMM-FB is inc FB .\n    op vac : -\u003e FbC .\n    eq4 insFB(vac) outsFB(vac) stsFB(vac) trsFB(vac)\n    op vacInit : Id -\u003e FB .\n\n  fmod TRACK-FB is inc FB .\n    op track : -\u003e FbC .\n    eq4 insFB(track) outsFB(track) stsFB(track) trsFB(track)\n    op trackInit : Id -\u003e FB .\n\n  fmod CONTROL-FB is inc FB .\n    op ctl : -\u003e FbC .\n    eq4 insFB(ctl) outsFB(ctl) stsFB(ctl) trsFB(ctl)\n    op ctlInit : Id -\u003e FB .\n\n  fmod BAD-CONTROL-FB is inc FB .\n    op bad-ctl : -\u003e FbC .\n    eq4 insFB(bad-ctl) outsFB(bad-ctl) stsFB(bad-ctl) trsFB(bad-ctl)\n    op badctlInit : Id -\u003e FB .\n\n  fmod FB-LIB is inc VACUMM-FB . inc TRACK-FB . \n                 inc CONTROL-FB . inc BAD-CONTROL-FB .\n\n  fmod CONTROLX-FB is inc FB .\n    op ctlx : -\u003e FbC .\n    eq4 insFB(ctlx) outsFB(ctlx) stsFB(ctlx) trsFB(ctlx)\n    op ctlxInit : Id -\u003e FB .\n\nfmod FB-LIB-DUAL is inc VACUMM-FB . inc TRACK-FB  .\n                    inc CONTROLX-FB . inc PNP-COORD-FB .\n\n***************************\nfb-lib1.maude\n\nfmod VACUMM-FB is   inc FB .\n*** requires ctl and track input\n  op vac : -\u003e FbC .\n  op vacInit : Id -\u003e FB .\n\nfmod TRACK-FB is inc FB .\n**** orig trac\n  op track : -\u003e FbC .\n  op trackInit : Id -\u003e FB .\n\nfmod TRACK-FB1 is inc FB .\n*** requires ctl and vac input\n  op track : -\u003e FbC .\n  op trackInit : Id -\u003e FB .\n\nfmod CONTROL-FB is inc FB .\n  op ctl : -\u003e FbC .\n  op ctlInit : Id -\u003e FB .\n\nfmod FB-LIB is \n  inc VACUMM-FB .  inc TRACK-FB .  inc CONTROL-FB .\nfmod FB-LIB1 is\n  inc VACUMM-FB . inc TRACK-FB1 .  inc CONTROL-FB .\n\nfmod CONTROLX-FB is inc FB .\n**** ctlx -- pauses at each round\n  op ctlx : -\u003e FbC .\n  op ctlxInit : Id -\u003e FB .\n\nfmod PNP-COORD-FB is  inc FB .\n  op pnp-coord : -\u003e FbC .\n  op pnp-coordInit : Id -\u003e FB .\n \nfmod FB-LIB-DUAL is\n  inc VACUMM-FB .  inc TRACK-FB1  .\n  inc CONTROLX-FB .  inc PNP-COORD-FB .\n\n***************************\ntrace2attacks.maude\n\n  mod TRACE2ATTACKS is inc META-LEVEL . inc APP-EXE .\n    sort AppIntruder \u003c AppIntList .\n    sort EMsgsSet .\n    op {_} : EMsgs -\u003e EMsgsSet [ctor] .\n    op mtAppInt : -\u003e AppIntruder [ctor] .\n    op getBadEMsgs :  Qid AppIntruder -\u003e EMsgsSet .\n    *** module, initialConf and search index\n      op toAppIntList$ : Module Term Nat -\u003e AppIntList .\n      op getEmsgIs : AppIntList EMsgs -\u003e EMsgs .\n      op getDelivered : EMsgs SSBs EMsgs -\u003e EMsgs  .\n\n****** load-pnp ***************************\n***************************\npnp-scenario.maude   pnp-attacks.maude\n  mod PNP-SCENARIO is inc FB-LIB . inc APP-EXE .\n    appLinks(id(\"pnp\")) = \n    ops emsgStart emsgI emsgI1 : -\u003e EMsg .\n    op pnpInit : EMsg -\u003e Application .\n    op pnpInitI : Application EMsgs -\u003e AppIntruder .\n    op badState : FBs -\u003e Bool .\n    op badState : Application -\u003e Bool .\n    op badState : AppIntruder -\u003e Bool .\n\nmod PNP-ATTACKS is inc PNP-SCENARIO . inc TRACE2ATTACKS .\n  op pnpAttacks0 : -\u003e EMsgsSet .  --- 0 imsg\n  op pnpAttacks : -\u003e EMsgsSet .   --- 1 imsg\n  op pnpAttacks1 : -\u003e EMsgsSet .  --- 2 imsgs\n  op pnpAttacks2 : -\u003e EMsgsSet .  --- 3 imsgs\n\n****** load-pnp1 ***************************\npnp1-scenario.maude\n  mod PNP-SCENARIO is inc FB-LIB1 . inc APP-EXE .\n  op pnpInit : EMsg -\u003e Application .\n  op pnpInitI : Application EMsgs -\u003e AppIntruder .\n\n  op badState : FBs -\u003e Bool .\n  op badState : Application -\u003e Bool .\n  op badState : AppIntruder -\u003e Bool .\n  op badState1 : FBs -\u003e Bool .\n  op badState1 : Application -\u003e Bool .\n  op badState1 : AppIntruder -\u003e Bool .\n\nmod PNP-ATTACKS is inc PNP-SCENARIO . inc TRACE2ATTACKS .\nusing badstate\n  op pnpAttacks0 : -\u003e EMsgsSet [memo] . --- no imsgs\n  op pnpAttacks1 : -\u003e EMsgsSet [memo] . --- 1 imsg\n  op pnpAttacks2 : -\u003e EMsgsSet [memo] . --- 2 imsgs\n  op pnpAttacks3 : -\u003e EMsgsSet [memo] . --- 3 imsgs\nusing badstate1\n  op pnp1Attacks0 : -\u003e EMsgsSet [memo] .  --- 0 imsgs\n  op pnp1Attacks1 : -\u003e EMsgsSet [memo] .  --- 1 imsg\n  op pnp1Attacks2 : -\u003e EMsgsSet [memo] .  --- 2 imsgs\n  op pnp1Attacks3 : -\u003e EMsgsSet [memo] .  --- 3 imsgs\n\n****** load-pnp2 ***************************\npnp2-scenario.maude\n  mod PNP2-SCENARIO is inc FB-LIB-DUAL . inc APP-EXE .\n    ops pnp2Start emsgI emsgI1 : -\u003e EMsg .\n    op pnp2FBs : -\u003e FBs .\n    op pnp2Init : EMsg -\u003e Application .\n    op pnp2InitI : Application EMsgs -\u003e AppIntruder .\n    op badState2 : FBs -\u003e Bool .\n    op badState2 : Application -\u003e Bool .\n    op badState2 : AppIntruder -\u003e Bool .\n    op badStateLOnROff : FBs -\u003e Bool .\n    op badStateLOnROff : Application -\u003e Bool .\n    op badStateLOnROff : AppIntruder -\u003e Bool .\n\n mod PNP2-ATTACKS is inc PNP2-SCENARIO . inc TRACE2ATTACKS .\n    op pnp2Attacks : -\u003e EMsgsSet .\n    op pnpLOnROff2Attacks : -\u003e EMsgsSet .\n    \n****** load-pnp1-2 ***************************\npnp1-2-scenario.maude\n\n**** version with track/vac double checking\nmod PNP2-SCENARIO is\n  inc FB-LIB-DUAL .\n  inc APP-EXE .\n  ops pnp2Start emsgI emsgI1 emsgI2 : -\u003e EMsg .\n  op pnp2FBs : -\u003e FBs .\n  op pnp2Init : EMsg -\u003e Application .\n  op pnp2InitI : Application EMsgs -\u003e AppIntruder .\n  op badState2 : FBs -\u003e Bool .\n  op badState2 : Application -\u003e Bool .\n  op badState2 : AppIntruder -\u003e Bool .\n  op badState2-1 : FBs -\u003e Bool .\n  op badState2-1 : Application -\u003e Bool .\n  op badState2-1 : AppIntruder -\u003e Bool .\n \n mod PNP2-ATTACKS is inc PNP2-SCENARIO . inc TRACE2ATTACKS .\n   op pnp2Attacks : -\u003e EMsgsSet . --- 1 imsg\n   op pnp2Attacks1 : -\u003e EMsgsSet .  --- 2 imsgs\n   op pnp2Attacks2 : -\u003e EMsgsSet .  --- 3 imsgs \n\n***************************\nmin-attacks.maude\n  fmod MIN-ATTACKS is   inc TRACE2ATTACKS .\n***** the main goal is to generate minimal protection emsg sets\n***** these are minimal sets of emsgs whose protection will prevent attack\n\n**** eml[j] -- the emsg sets of size j+1 from input\n  op emsgsSet2emsgsList : EMsgsSet  -\u003e  EMsgssList .\n\n**** return emsgssl st attack sets of size j do not contain any attack set of size  less than j (uses check subsumed)\n  op pruneEMsgss : EMsgssList -\u003e EMsgssList .\n   \n  op checkSubsumed : EMsgs EMsgssList Nat Nat -\u003e Bool .\n\n***** List of pairs [emsg,n]  used to count the occurrences of emsg\n***** in a set of attack sets\n  sorts EMsgNat EMsgNatL .\n  subsort EMsgNat \u003c EMsgNatL .\n  op nil : -\u003e EMsgNatL [ctor] .\n  op _;_ : EMsgNatL EMsgNatL -\u003e EMsgNatL [ctor assoc id: nil] .\n  op [_`,_] : EMsg Nat -\u003e EMsgNat [ctor] .\n\n*** ... [emsg,n] ; ... st emsg occurs in n emsgsets in emsgssl \n*** the first element give max count\n  op emssl2emns : EMsgssList  -\u003e EMsgNatL .\n  op emssl2emns$ : EMsgssList EMsgs EMsgNatL -\u003e EMsgNatL .\n      **** the number of emsg sets with emsg as an element\n      op countOccsMSL : EMsgssList EMsg Nat -\u003e Nat .\n      op countOccsMS : EMsgsSet EMsg Nat -\u003e Nat .\n\n**** emsgs with max occ count\n  op collectMxEMsg : EMsgNatL -\u003e EMsgs .\n  op collectMxEMsg$ : EMsgNatL Nat EMsgs -\u003e EMsgs .\n\n***** generate minimal protection emsg sets\n**** minimal protection sets for attacks in emsgssl\n**** assume emsgssl is pruned, so a minprotset must\n**** only intersect each attack set non-trivially\n***** genMinProts([none,emsgssl],none)\n\n  sorts EMsgsEML EMsgsEMLs .\n  subsort EMsgsEML \u003c EMsgsEMLs .\n  op [_,_] : EMsgs EMsgssList -\u003e EMsgsEML .\n  op none : -\u003e EMsgsEMLs [ctor] .\n  op __ : EMsgsEMLs EMsgsEMLs -\u003e EMsgsEMLs \n         [ctor comm assoc id: none] .\n\n  op genMinProts : EMsgsEMLs EMsgsSet -\u003e EMsgsSet .\n  op genMinProtsX : EMsgssList EMsgs EMsgsEMLs EMsgsSet \n                  -\u003e EMsgsSet .\n*****              cur    cxt   todo     result\n\n***** Given maxocc set,and emsgssl produce\n***** [m,removeM(emsgssl)] : m in maxocc\n***** given [emsgs,emsgssl] refine with [emsgs m, emsgssl ]\n*****    [m,removeM(emsgsl,m)] : m in maxocc(emsgsl)\n   op emsgssl2oneprot : EMsgssList -\u003e EMsgsEMLs .\n      op dropHasEmsg : EMsgssList EMsg EMsgssList -\u003e EMsgssList .\n      op removeHasEmsg : EMsgsSet EMsg EMsgsSet -\u003e EMsgsSet .\n\n  ***** { {emsgs emsg} | [emsg,nil] in emsgsemls1}\n   op getMPs : EMsgsEMLs EMsgs EMsgsSet -\u003e EMsgsSet .\n  **** { [emsgs emsg, emsgssl] st [emsg, emsgssl] in emsgss1 \n  ****   and emsgssl =/= nil\n   op getTodos :  EMsgsEMLs EMsgs EMsgsEMLs -\u003e EMsgsEMLs .\n\n******************************************************\n****** load-deploy  ***************************\nmessages.maude\n\n  fmod MESSAGES is inc PORT . inc EVENTS .\n    sort PMsg \u003c Msg \u003c Msgs .\n    op {_,_,_} : Port Port Event -\u003e PMsg . \n    op size : Msgs -\u003e Nat .\n\n  fmod SIGNED-MESSAGES is inc MESSAGES .\n    sort SignedMsg \u003c Msg .\n    op sg : Event Id -\u003e Event .\n    op signMsg : PMsg Id -\u003e Msg .\n    op unsign : Event -\u003e Event .\n    op isSigned : Event Id -\u003e Bool .\n    \n***************************\npolicy.maude\n\n  fmod POLICY is inc PORT .\n    sort iFact \u003c iPolicy .\n    sort oFact \u003c oPolicy .\n    op [o`:_;_] : Id OutEv -\u003e oFact .  ---  {fbId,out}\n    op [i`:_;_,_] : Id InEv Id -\u003e iFact .  --- {fbId,in}, devId\n\n***************************\nsys.maude\n\n  fmod SYSTEM is inc APPLICATION . inc MESSAGES . inc MAP{Id,Id} .\n                 inc POLICY . ---- wrapped\n    **** GLOBALS set in scenario\n    op sysIns : Id -\u003e Ins .\n    op sysOuts : Id -\u003e Outs .\n    op sysMap : Id -\u003e Map{Id,Id} .\n    sorts System SysIntruder .\n    op [_|_|_] : Id Id MyAttrs -\u003e System .\n    op devs`:_ : Apps -\u003e MyAttr .\n    op iMsgs`:_ : Msgs -\u003e MyAttr .\n    op oMsgs`:_ : Msgs -\u003e MyAttr .\n    op iPol`:_ : iPolicy -\u003e MyAttr .   ---- wrapped\n    op oPol`:_ : oPolicy -\u003e MyAttr .   ---- wrapped\n    op [_,_] : System Msgs -\u003e SysIntruder [ctor] .\n    op mkSys : Id Id Apps Msgs -\u003e System .\n    op addAttr : System MyAttrs -\u003e System .\n\n  fmod SYS-AUX is inc SYSTEM . inc APP-AUX . \n                  inc SIGNED-MESSAGES .  ---- wrapped\n    op isDone : Apps -\u003e Bool .\n    op deliver2Devs : Apps Msgs Links Map{Id,Id} -\u003e Apps .\n    op checkMsg : Id Port Event Links Map{Id,Id} MyAttrs -\u003e EMsgs .\n    op checkPolicy : Port Event Links Map{Id,Id} MyAttrs -\u003e EMsgs .\n    op checkPort : Id EMsgs Links Map{Id,Id} -\u003e EMsgs .\n    op resetTicks : Apps Apps -\u003e Apps .\n    sort DevsMsgsMsgs .\n    op {_,_,_} : Apps Msgs Msgs -\u003e DevsMsgsMsgs [ctor] .\n    op extractOutMsgs : Id Apps Apps Msgs Msgs \n                        Links Map{Id,Id}  -\u003e DevsMsgsMsgs .\n    op emsgs2omsgs : Id Id EMsgs Msgs Links -\u003e Msgs .\n\n  mod SYS-EXE is inc SYS-AUX . inc APP-EXE .\n    crl[sys-deliver]\n    crl[sys-collect]\n    rl[sys-intruder]\n    \n***************************\npnp-scenario-deployed.maude\n\n  fmod DEPLOY-APP is inc APPLICATION . inc SYSTEM .\n    op deployFBs : FBs Apps Map{Id,Id} -\u003e Apps .\n    op emsg2imsg : Id EMsg Map{Id,Id}  -\u003e Msgs .  --- 0 or 1\n\n  mod PNP-SCENARIO-DEPLOYED is inc SYS-EXE . inc PNP-SCENARIO .\n                               inc DEPLOY-APP .\n    ops msgStart msgI msgI1 : -\u003e Msg .\n    ops Dev1 Dev2 Dev3 : -\u003e Application .\n    op pnpD1-1Init : Msgs -\u003e System .\n    op pnpDInitI : System Msgs -\u003e SysIntruder .\n    op badState : System -\u003e Bool .\n    op badState : SysIntruder -\u003e Bool .\n    ops dPnP1-1 dPnP-vc-t : -\u003e System .\n\n****** load-wrap  **************************\nwrap.maude\n\n  fmod WRAP-SYSTEM is inc APPLICATION . inc SYSTEM . inc POLICY .\n                      inc SIGNED-MESSAGES .\n    op addEMsgs : EMsgs EMsgs -\u003e EMsgs .\n    op flattenEMsgsSet : EMsgsSet EMsgs -\u003e EMsgs .\n    op wrap-sys : System EMsgsSet -\u003e System .\n    op wrap-devs : Apps EMsgs Links Map{Id,Id} Apps -\u003e Apps . \n    op wrap-dev : Application EMsgs Links Map{Id,Id} \n                 iPolicy oPolicy -\u003e Application . \n\n***************************\npnp-scenario-wrap.maude\n\n  mod PNP-SCENARIO-WRAP is inc PNP-SCENARIO-DEPLOYED . \n                 inc TRACE2ATTACKS . inc WRAP-SYSTEM .\n    op pnpBad : -\u003e EMsgsSet .\n    ops wPnP1-1 wPnP-vc-t : -\u003e System .\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Fwrappat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsri-csl%2Fwrappat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Fwrappat/lists"}