From 0347f90e15f4bcdaae8aa03a00a0a1d4bb0c4b77 Mon Sep 17 00:00:00 2001 From: Francesco Mecca Date: Fri, 8 May 2020 19:23:51 +0200 Subject: [PATCH] 3.9 --- anno3/vpc/consegne/3/3.6.PNPRO | 11 +- anno3/vpc/consegne/3/3.6.jpg | Bin 0 -> 32553 bytes .../consegne/3/3.8-Measures.solution/PT.bnd | 14 + .../consegne/3/3.8-Measures.solution/PT.ctl | 2 + .../consegne/3/3.8-Measures.solution/PT.def | 3 + .../3/3.8-Measures.solution/PT.ilpbnd | 2 + .../consegne/3/3.8-Measures.solution/PT.net | 105 +++++ .../consegne/3/3.8-Measures.solution/PT.pba | 8 + .../consegne/3/3.8-Measures.solution/PT.pin | 10 + anno3/vpc/consegne/3/3.8.PNPRO | 122 ++++++ anno3/vpc/consegne/3/3.8.jpg | Bin 0 -> 50602 bytes anno3/vpc/consegne/3/3.8.smv | 49 +++ .../consegne/3/3.9-Measures.solution/PT.bnd | 16 + .../consegne/3/3.9-Measures.solution/PT.ctl | 2 + .../consegne/3/3.9-Measures.solution/PT.def | 3 + .../3/3.9-Measures.solution/PT.ilpbnd | 2 + .../consegne/3/3.9-Measures.solution/PT.net | 166 ++++++++ .../consegne/3/3.9-Measures.solution/PT.pba | 7 + .../consegne/3/3.9-Measures.solution/PT.pin | 8 + anno3/vpc/consegne/3/3.9.PNPRO | 223 +++++++++++ anno3/vpc/consegne/3/3.9.jpg | Bin 0 -> 50716 bytes anno3/vpc/consegne/3/3.9.smv | 46 +++ anno3/vpc/consegne/3/analisi.org | 366 +++++++++++++++++- 23 files changed, 1161 insertions(+), 4 deletions(-) create mode 100644 anno3/vpc/consegne/3/3.6.jpg create mode 100644 anno3/vpc/consegne/3/3.8-Measures.solution/PT.bnd create mode 100644 anno3/vpc/consegne/3/3.8-Measures.solution/PT.ctl create mode 100644 anno3/vpc/consegne/3/3.8-Measures.solution/PT.def create mode 100644 anno3/vpc/consegne/3/3.8-Measures.solution/PT.ilpbnd create mode 100644 anno3/vpc/consegne/3/3.8-Measures.solution/PT.net create mode 100644 anno3/vpc/consegne/3/3.8-Measures.solution/PT.pba create mode 100644 anno3/vpc/consegne/3/3.8-Measures.solution/PT.pin create mode 100644 anno3/vpc/consegne/3/3.8.PNPRO create mode 100644 anno3/vpc/consegne/3/3.8.jpg create mode 100644 anno3/vpc/consegne/3/3.8.smv create mode 100644 anno3/vpc/consegne/3/3.9-Measures.solution/PT.bnd create mode 100644 anno3/vpc/consegne/3/3.9-Measures.solution/PT.ctl create mode 100644 anno3/vpc/consegne/3/3.9-Measures.solution/PT.def create mode 100644 anno3/vpc/consegne/3/3.9-Measures.solution/PT.ilpbnd create mode 100644 anno3/vpc/consegne/3/3.9-Measures.solution/PT.net create mode 100644 anno3/vpc/consegne/3/3.9-Measures.solution/PT.pba create mode 100644 anno3/vpc/consegne/3/3.9-Measures.solution/PT.pin create mode 100644 anno3/vpc/consegne/3/3.9.PNPRO create mode 100644 anno3/vpc/consegne/3/3.9.jpg create mode 100644 anno3/vpc/consegne/3/3.9.smv diff --git a/anno3/vpc/consegne/3/3.6.PNPRO b/anno3/vpc/consegne/3/3.6.PNPRO index f12252b..b3c23d3 100644 --- a/anno3/vpc/consegne/3/3.6.PNPRO +++ b/anno3/vpc/consegne/3/3.6.PNPRO @@ -92,7 +92,7 @@ - + @@ -125,9 +125,16 @@ + + + + + + + - rO0ABXNyABRqYXZhLnV0aWwuTGlua2VkTGlzdAwpU11KYIgiAwAAeHB3BAAAAKh0AJMbWzBtRVhFQzogL3Vzci9sb2NhbC9HcmVhdFNQTi9iaW4vRFNQTi1Ub29sIC1sb2FkICIvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuNi1NZWFzdXJlcy5zb2x1dGlvbi9QVCIgLXBiYXNpcyAtZGV0ZWN0LWV4cCAtcHNmbCAtYm5kIAp0AHAbWzFtG1s0bUxPQURJTkcgUEVUUkkgTkVUIC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy42LU1lYXN1cmVzLnNvbHV0aW9uL1BUIChuZXQvZGVmKS4uLhtbMjJtG1syNG0KdAAPTUFSS0lORyBQQVI6IDAKdAAQUExBQ0VTOiAgICAgIDE0CnQAD1JBVEUgUEFSOiAgICAwCnQAEFRSQU5TSVRJT05TOiAxMgp0AA9NRUFTVVJFUzogICAgMAp0AChMT0FESU5HIFRJTUU6IFtVc2VyIDAuMDAwcywgU3lzIDAuMDAwc10KdAABCnQAAQp0AB5DT01QVVRJTkcgUExBQ0UgRkxPVyBCQVNJUy4uLgp0ABJNPTEyLCBOPTE0LCBOMD0xNAp0ADlDb21wdXRhdGlvbiBvZiBGbG93IGJhc2lzOiBzdGVwIDEvMTIsIHxLfD0xMiwgcHJvZHVjdHM9MQp0AFMbWzFBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCnQAUhtbMUFDb21wdXRhdGlvbiBvZiBGbG93IGJhc2lzOiBjb21wbGV0ZWQgaW4gOCBzdGVwcywgfEt8PTYuICAgICAgICAgICAgICAgICAgICAgIAp0AEBGT1VORCA2IFZFQ1RPUlMgSU4gVEhFIFBMQUNFIEZMT1cgQkFTSVMgKDQgc2VtaWZsb3dzLCAyIGZsb3dzKS4KdAABCnQAAQp0ACdBbGwgcGxhY2VzIGFyZSBjb3ZlcmVkIGJ5IHNvbWUgUC1mbG93Lgp0AAEKdAAmVE9UQUwgVElNRTogW1VzZXIgMC4wMDBzLCBTeXMgMC4wMDBzXQp0ACdBVk9JRCBFWFBPTkVOVElBTCBHUk9XVEggT0YgU0VNSUZMT1dTLgp0AB1DT01QVVRJTkcgUExBQ0UgU0VNSUZMT1dTLi4uCnQAEk09MTIsIE49MTQsIE4wPTE0CnQAK0dlbmVyYXRpb24gb2YgU2VtaWZsb3dzOiBzdGVwIDEvMTIsIHxLfD0xMgp0AFMbWzFBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCnQAUBtbMUFHZW5lcmF0aW9uIG9mIFNlbWlmbG93czogY29tcGxldGVkIGluIDggc3RlcHMsIHxLfD04LiAgICAgICAgICAgICAgICAgICAgICAKdAAZRk9VTkQgOCBQTEFDRSBTRU1JRkxPV1MuCnQAAQp0AAEKdAArQWxsIHBsYWNlcyBhcmUgY292ZXJlZCBieSBzb21lIFAtc2VtaWZsb3cuCnQAAQp0ACZUT1RBTCBUSU1FOiBbVXNlciAwLjAwMHMsIFN5cyAwLjAwMHNdCnQALENPTVBVVElORyBQTEFDRSBCT1VORFMgRlJPTSBQLVNFTUlGTE9XUyAuLi4KdAAnG1swWBtbMzJtIFBST0NFU1MgRVhJVEVEIE5PUk1BTExZLhtbMG0KdACkG1swbUVYRUM6IHBlcmwgLWUgJ2FsYXJtIDUgOyBleGVjICIvdXNyL2xvY2FsL0dyZWF0U1BOL2Jpbi9EU1BOLVRvb2wgLWxvYWQgXCIvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuNi1NZWFzdXJlcy5zb2x1dGlvbi9QVFwiIC1sb2FkLWJuZCAtaWxwLWJuZCIgJwp0AHAbWzFtG1s0bUxPQURJTkcgUEVUUkkgTkVUIC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy42LU1lYXN1cmVzLnNvbHV0aW9uL1BUIChuZXQvZGVmKS4uLhtbMjJtG1syNG0KdAAPTUFSS0lORyBQQVI6IDAKdAAQUExBQ0VTOiAgICAgIDE0CnQAD1JBVEUgUEFSOiAgICAwCnQAEFRSQU5TSVRJT05TOiAxMgp0AA9NRUFTVVJFUzogICAgMAp0AChMT0FESU5HIFRJTUU6IFtVc2VyIDAuMDAwcywgU3lzIDAuMDAwc10KdAABCnQAAQp0ABVMT0FESU5HIEJORCBGSUxFIC4uLgp0ACVDT01QVVRJTkcgUExBQ0UgQk9VTkRTIFVTSU5HIElMUCAuLi4KdAAYQWxsIHBsYWNlcyBhcmUgYm91bmRlZC4KcQB+ACR0AHUbWzBtRVhFQzogL3Vzci9sb2NhbC9HcmVhdFNQTi9iaW4vUkdNRUREMyAiL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy8zLjYtTWVhc3VyZXMuc29sdXRpb24vUFQiIC1NRVRBICAtQwp0ACBSYW5kb20gc2VlZHM6IDE1ODg5MzI5NDkgMjA0NTYzCnQAUD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdAARR3JlYXRTUE4vTWVkZGx5Lgp0ADggIENvcHlyaWdodCAoQykgMTk4Ny0yMDE4LCBVbml2ZXJzaXR5IG9mIFRvcmlubywgSXRhbHkuCnQAMSAgU2VuZCBmaWxlcyBuZXRuYW1lLm5ldCwgLmRlZiB0byBlLW1haWwgYWRkcmVzcwp0ACsgIGJlY2N1dGlAZGkudW5pdG8uaXQgaWYgeW91IGZpbmQgYW55IGJ1Zy4KdABQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp0AB9CYXNlZCBvbiBNRURETFkgdmVyc2lvbiAwLjE2LjAKdABGICBDb3B5cmlnaHQgKEMpIDIwMDksIElvd2EgU3RhdGUgVW5pdmVyc2l0eSBSZXNlYXJjaCBGb3VuZGF0aW9uLCBJbmMuCnQAKSAgd2Vic2l0ZTogaHR0cDovL21lZGRseS5zb3VyY2Vmb3JnZS5uZXQKdABQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp0AClVc2luZyBwZXItZXZlbnQgc2F0dXJhdGlvbiAoc2F0LXByZWdlbikuCnQAG1VzaW5nIGZhc3QgTlNGIGdlbmVyYXRpb24uCnQAElByb2Nlc3MgSUQ6IDMxODg4CnQAS01PREVMIE5BTUU6IC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy42LU1lYXN1cmVzLnNvbHV0aW9uL1BUCnQAHSAgMTQgcGxhY2VzLCAxMiB0cmFuc2l0aW9ucy4KdAAnVXNlZCBNZW1vcnkgZm9yIGVuY29kaW5nIG5ldDogMzU1ODQ4S0IKdABVT3BlbmluZyBmaWxlOiAvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuNi1NZWFzdXJlcy5zb2x1dGlvbi9QVC5ibmQgT0suCnQAWE9wZW5pbmcgZmlsZTogL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy8zLjYtTWVhc3VyZXMuc29sdXRpb24vUFQuaWxwYm5kIE9LLgp0ABBJTlBVVCBBUkNTOiAgMTQKdAAQT1VUUFVUIEFSQ1M6IDE0CnQAD0lOSElCIEFSQ1M6ICAwCnQAD1RFU1QgQVJDUzogICA0CnQAEFBMQUNFUzogICAgICAxNAp0ABBUUkFOU0lUSU9OUzogMTIKdAAPSU5WQVJJQU5UUzogIDYKdAAPUC1TRU1JRkxPV1M6IDgKdAAWTUFYIElOVkFSSUFOVCBDQVJEOiAxCnQAAQp0AFA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFZBUklBQkxFIE9SREVSID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnQAPFZhcmlhYmxlIG9yZGVyIG1ldGhvZDogTWV0YS1oZXVyaXN0aWMgdXNpbmcgd2VpZ2h0ZWQgc2NvcmUuCnQAUSAgTUVUSE9EICAgICAgICAgICAgICBTQ09SRSAgICAgICAgU1dJUiAgICAgICBTT1VQUyBESVNDT1VOVCAgV0VJR0hUICAgICAgIFRJTUUgCnQAVSAgU0xPICAgICAgICAgICAgICAgIDEwNi41OSAgICAgICAgICA5NSAgICAgICAgICA1MSAgICAgICAgMSAgIDEuMTIyICAgMC4wMDAxMjcgc2VjLgp0AFUgIFNMTytGb3JjZSAgICAgICAgICAgNTYuMzIgICAgICAgICAgNjQgICAgICAgICAgNDUgICAgICAgIDEgICAgMC44OCAgICA2LjFlLTA1IHNlYy4KdABVICBTTE8tMTYgICAgICAgICAgICAgIDc1LjgxICAgICAgICAgIDk1ICAgICAgICAgIDUxICAgICAgICAxICAgMC43OTggICAgNi4yZS0wNSBzZWMuCnQAVSAgU0xPLTE2K0ZvcmNlICAgICAgIDU4LjMwNCAgICAgICAgICA2NCAgICAgICAgICA0NSAgICAgICAgMSAgIDAuOTExICAgIDQuOGUtMDUgc2VjLgp0AFUgIFRPVjIgICAgICAgICAgICAgICA1MC45MDQgICAgICAgICAgNTYgICAgICAgICAgNDIgICAgICAgIDEgICAwLjkwOSAgICAzLjllLTA1IHNlYy4KdABVICBUT1YyK0ZvcmNlICAgICAgICAgNjEuMzc0ICAgICAgICAgIDUzICAgICAgICAgIDQyICAgICAgICAxICAgMS4xNTggICAgICA1ZS0wNSBzZWMuCnQAVSAgTk9BQ0syICAgICAgICAgICAgMTQ1Ljg5OSAgICAgICAgIDEyOSAgICAgICAgICA1OSAgICAgICAgMSAgIDEuMTMxICAgIDMuNmUtMDUgc2VjLgp0AFUgIE5PQUNLMitGb3JjZSAgICAgICAgNDEuMTYgICAgICAgICAgNDIgICAgICAgICAgMzkgICAgICAgIDEgICAgMC45OCAgICA1LjllLTA1IHNlYy4KdABVICBBQ00gICAgICAgICAgICAgICAxMDQuMTMzICAgICAgICAgMTAzICAgICAgICAgIDU0ICAgICAgICAxICAgMS4wMTEgICAgNi40ZS0wNSBzZWMuCnQAVSAgQUNNK0ZvcmNlICAgICAgICAgIDYxLjM0NCAgICAgICAgICA0OCAgICAgICAgICA0MSAgICAgICAgMSAgIDEuMjc4ICAgIDQuN2UtMDUgc2VjLgp0AFUgIENNMiAgICAgICAgICAgICAgICAgMTA3LjEgICAgICAgICAgODQgICAgICAgICAgNDkgICAgICAgIDEgICAxLjI3NSAgICAzLjJlLTA1IHNlYy4KdABVICBDTTIrRm9yY2UgICAgICAgICAgNTIuNzUyICAgICAgICAgIDQ4ICAgICAgICAgIDQxICAgICAgICAxICAgMS4wOTkgICAgNC43ZS0wNSBzZWMuCnQAVSAgUCAgICAgICAgICAgICAgICAgMTMzLjIyMyAgICAgICAgIDEyNyAgICAgICAgICA2NiAgICAgICAgMSAgIDEuMDQ5ICAgICAgM2UtMDUgc2VjLgp0AFUgIEdQICAgICAgICAgICAgICAgICAxMDQuNjcgICAgICAgICAgOTAgICAgICAgICAgNTIgICAgICAgIDEgICAxLjE2MyAgICA4LjVlLTA1IHNlYy4KdABVICBHUCtGb3JjZSAgICAgICAgICAgNTUuMTI1ICAgICAgICAgIDQ5ICAgICAgICAgIDM5ICAgICAgICAxICAgMS4xMjUgICAgNS40ZS0wNSBzZWMuCnQAQE1ldGEtaGV1cmlzdGljOiBzZWxlY3RpbmcgbWV0aG9kIE5PQUNLMitGb3JjZSB3aXRoIHNjb3JlOiA0MS4xNgp0AClUaW1lIHRvIGNvbXB1dGUgdmFyaWFibGUgb3JkZXI6IDAuMDAxMzExCnQAAQp0AFA9PT09PT09PT09PT09PT09PT09PT09PT09IFNUQVJUIEZJUklORyBSVUxFUyBFTkNPRElORyA9PT09PT09PT09PT09PT09PT09PT09PT09CnQALEVuY29kZWQgMTIgdHJhbnNpdGlvbiBpbiAxIHByaW9yaXR5IGdyb3Vwcy4KdAAgVGltZSB0byBidWlsZCBhbGwgTlNGczogMC4wMDA2OQp0AAEKdABQPT09PT09PT09PT09PT09PT09PT09PT09PSBSRUFDSEFCSUxJVFkgU0VUIEdFTkVSQVRJT04gPT09PT09PT09PT09PT09PT09PT09PT09PQp0ABVTcGxpdDogU3BsaXRTdWJ0cmFjdAp0AB1SUyBnZW5lcmF0aW9uIHRpbWU6IDAuMDAwMTk1CnQAHUNvbXB1dGluZyB2YXJpYWJsZSBib3VuZHMuLi4KdAABCnQAUD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE1FTU9SWSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdAApIFRvdGFsIE1lbW9yeSBVc2VkOiAg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XQp0ACdBVk9JRCBFWFBPTkVOVElBTCBHUk9XVEggT0YgU0VNSUZMT1dTLgp0AB1DT01QVVRJTkcgUExBQ0UgU0VNSUZMT1dTLi4uCnQAEk09MTIsIE49MTQsIE4wPTE0CnQAK0dlbmVyYXRpb24gb2YgU2VtaWZsb3dzOiBzdGVwIDEvMTIsIHxLfD0xMgp0AFMbWzFBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCnQAUBtbMUFHZW5lcmF0aW9uIG9mIFNlbWlmbG93czogY29tcGxldGVkIGluIDggc3RlcHMsIHxLfD04LiAgICAgICAgICAgICAgICAgICAgICAKdAAZRk9VTkQgOCBQTEFDRSBTRU1JRkxPV1MuCnQAAQp0AAEKdAArQWxsIHBsYWNlcyBhcmUgY292ZXJlZCBieSBzb21lIFAtc2VtaWZsb3cuCnQAAQp0ACZUT1RBTCBUSU1FOiBbVXNlciAwLjAwMHMsIFN5cyAwLjAwMHNdCnQALENPTVBVVElORyBQTEFDRSBCT1VORFMgRlJPTSBQLVNFTUlGTE9XUyAuLi4KdAAnG1swWBtbMzJtIFBST0NFU1MgRVhJVEVEIE5PUk1BTExZLhtbMG0KdACkG1swbUVYRUM6IHBlcmwgLWUgJ2FsYXJtIDUgOyBleGVjICIvdXNyL2xvY2FsL0dyZWF0U1BOL2Jpbi9EU1BOLVRvb2wgLWxvYWQgXCIvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuNi1NZWFzdXJlcy5zb2x1dGlvbi9QVFwiIC1sb2FkLWJuZCAtaWxwLWJuZCIgJwp0AHAbWzFtG1s0bUxPQURJTkcgUEVUUkkgTkVUIC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy42LU1lYXN1cmVzLnNvbHV0aW9uL1BUIChuZXQvZGVmKS4uLhtbMjJtG1syNG0KdAAPTUFSS0lORyBQQVI6IDAKdAAQUExBQ0VTOiAgICAgIDE0CnQAD1JBVEUgUEFSOiAgICAwCnQAEFRSQU5TSVRJT05TOiAxMgp0AA9NRUFTVVJFUzogICAgMAp0AChMT0FESU5HIFRJTUU6IFtVc2VyIDAuMDAwcywgU3lzIDAuMDAwc10KdAABCnQAAQp0ABVMT0FESU5HIEJORCBGSUxFIC4uLgp0ACVDT01QVVRJTkcgUExBQ0UgQk9VTkRTIFVTSU5HIElMUCAuLi4KdAAYQWxsIHBsYWNlcyBhcmUgYm91bmRlZC4KcQB+ACR0AHgbWzBtRVhFQzogL3Vzci9sb2NhbC9HcmVhdFNQTi9iaW4vUkdNRUREMyAiL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy8zLjYtTWVhc3VyZXMuc29sdXRpb24vUFQiIC1NRVRBICAtYyAtQwp0ACBSYW5kb20gc2VlZHM6IDE1ODg5NDQwOTggNjcwMTUwCnQAUD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdAARR3JlYXRTUE4vTWVkZGx5Lgp0ADggIENvcHlyaWdodCAoQykgMTk4Ny0yMDE4LCBVbml2ZXJzaXR5IG9mIFRvcmlubywgSXRhbHkuCnQAMSAgU2VuZCBmaWxlcyBuZXRuYW1lLm5ldCwgLmRlZiB0byBlLW1haWwgYWRkcmVzcwp0ACsgIGJlY2N1dGlAZGkudW5pdG8uaXQgaWYgeW91IGZpbmQgYW55IGJ1Zy4KdABQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp0AB9CYXNlZCBvbiBNRURETFkgdmVyc2lvbiAwLjE2LjAKdABGICBDb3B5cmlnaHQgKEMpIDIwMDksIElvd2EgU3RhdGUgVW5pdmVyc2l0eSBSZXNlYXJjaCBGb3VuZGF0aW9uLCBJbmMuCnQAKSAgd2Vic2l0ZTogaHR0cDovL21lZGRseS5zb3VyY2Vmb3JnZS5uZXQKdABQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp0AClVc2luZyBwZXItZXZlbnQgc2F0dXJhdGlvbiAoc2F0LXByZWdlbikuCnQAG1VzaW5nIGZhc3QgTlNGIGdlbmVyYXRpb24uCnQAEVByb2Nlc3MgSUQ6IDgxOTIKdABLTU9ERUwgTkFNRTogL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy8zLjYtTWVhc3VyZXMuc29sdXRpb24vUFQKdAAdICAxNCBwbGFjZXMsIDEyIHRyYW5zaXRpb25zLgp0ACdVc2VkIE1lbW9yeSBmb3IgZW5jb2RpbmcgbmV0OiAzODEzMzZLQgp0AFVPcGVuaW5nIGZpbGU6IC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy42LU1lYXN1cmVzLnNvbHV0aW9uL1BULmJuZCBPSy4KdABYT3BlbmluZyBmaWxlOiAvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuNi1NZWFzdXJlcy5zb2x1dGlvbi9QVC5pbHBibmQgT0suCnQAEElOUFVUIEFSQ1M6ICAxNAp0ABBPVVRQVVQgQVJDUzogMTQKdAAPSU5ISUIgQVJDUzogIDAKdAAPVEVTVCBBUkNTOiAgIDQKdAAQUExBQ0VTOiAgICAgIDE0CnQAEFRSQU5TSVRJT05TOiAxMgp0AA9JTlZBUklBTlRTOiAgNgp0AA9QLVNFTUlGTE9XUzogOAp0ABZNQVggSU5WQVJJQU5UIENBUkQ6IDEKdAABCnQAUD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVkFSSUFCTEUgT1JERVIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdAA8VmFyaWFibGUgb3JkZXIgbWV0aG9kOiBNZXRhLWhldXJpc3RpYyB1c2luZyB3ZWlnaHRlZCBzY29yZS4KdABRICBNRVRIT0QgICAgICAgICAgICAgIFNDT1JFICAgICAgICBTV0lSICAgICAgIFNPVVBTIERJU0NPVU5UICBXRUlHSFQgICAgICAgVElNRSAKdABVICBTTE8gICAgICAgICAgICAgICAgMTA2LjU5ICAgICAgICAgIDk1ICAgICAgICAgIDUxICAgICAgICAxICAgMS4xMjIgICAwLjAwMDMwNSBzZWMuCnQAVSAgU0xPK0ZvcmNlICAgICAgICAgICA1Ni4zMiAgICAgICAgICA2NCAgICAgICAgICA0NSAgICAgICAgMSAgICAwLjg4ICAgICAgOGUtMDUgc2VjLgp0AFUgIFNMTy0xNiAgICAgICAgICAgICAgNzUuODEgICAgICAgICAgOTUgICAgICAgICAgNTEgICAgICAgIDEgICAwLjc5OCAgIDAuMDAwMTQxIHNlYy4KdABVICBTTE8tMTYrRm9yY2UgICAgICAgNTguMzA0ICAgICAgICAgIDY0ICAgICAgICAgIDQ1ICAgICAgICAxICAgMC45MTEgICAgNS4zZS0wNSBzZWMuCnQAVSAgVE9WMiAgICAgICAgICAgICAgIDUwLjkwNCAgICAgICAgICA1NiAgICAgICAgICA0MiAgICAgICAgMSAgIDAuOTA5ICAgIDUuNWUtMDUgc2VjLgp0AFUgIFRPVjIrRm9yY2UgICAgICAgICA2MS4zNzQgICAgICAgICAgNTMgICAgICAgICAgNDIgICAgICAgIDEgICAxLjE1OCAgICAzLjllLTA1IHNlYy4KdABVICBOT0FDSzIgICAgICAgICAgICAxNDUuODk5ICAgICAgICAgMTI5ICAgICAgICAgIDU5ICAgICAgICAxICAgMS4xMzEgICAgMi45ZS0wNSBzZWMuCnQAVSAgTk9BQ0syK0ZvcmNlICAgICAgICA0MS4xNiAgICAgICAgICA0MiAgICAgICAgICAzOSAgICAgICAgMSAgICAwLjk4ICAgICAgNWUtMDUgc2VjLgp0AFUgIEFDTSAgICAgICAgICAgICAgIDEwNC4xMzMgICAgICAgICAxMDMgICAgICAgICAgNTQgICAgICAgIDEgICAxLjAxMSAgICA4LjRlLTA1IHNlYy4KdABVICBBQ00rRm9yY2UgICAgICAgICAgNjEuMzQ0ICAgICAgICAgIDQ4ICAgICAgICAgIDQxICAgICAgICAxICAgMS4yNzggICAgNC40ZS0wNSBzZWMuCnQAVSAgQ00yICAgICAgICAgICAgICAgICAxMDcuMSAgICAgICAgICA4NCAgICAgICAgICA0OSAgICAgICAgMSAgIDEuMjc1ICAgIDIuOGUtMDUgc2VjLgp0AFUgIENNMitGb3JjZSAgICAgICAgICA1Mi43NTIgICAgICAgICAgNDggICAgICAgICAgNDEgICAgICAgIDEgICAxLjA5OSAgICAgIDNlLTA1IHNlYy4KdABVICBQICAgICAgICAgICAgICAgICAxMzMuMjIzICAgICAgICAgMTI3ICAgICAgICAgIDY2ICAgICAgICAxICAgMS4wNDkgICAgMi4yZS0wNSBzZWMuCnQAVSAgR1AgICAgICAgICAgICAgICAgIDEwNC42NyAgICAgICAgICA5MCAgICAgICAgICA1MiAgICAgICAgMSAgIDEuMTYzICAgIDguN2UtMDUgc2VjLgp0AFUgIEdQK0ZvcmNlICAgICAgICAgICA1NS4xMjUgICAgICAgICAgNDkgICAgICAgICAgMzkgICAgICAgIDEgICAxLjEyNSAgICAzLjRlLTA1IHNlYy4KdABATWV0YS1oZXVyaXN0aWM6IHNlbGVjdGluZyBtZXRob2QgTk9BQ0syK0ZvcmNlIHdpdGggc2NvcmU6IDQxLjE2CnQAJ1RpbWUgdG8gY29tcHV0ZSB2YXJpYWJsZSBvcmRlcjogMC4wMDE5CnQAAQp0AFA9PT09PT09PT09PT09PT09PT09PT09PT09IFNUQVJUIEZJUklORyBSVUxFUyBFTkNPRElORyA9PT09PT09PT09PT09PT09PT09PT09PT09CnQALEVuY29kZWQgMTIgdHJhbnNpdGlvbiBpbiAxIHByaW9yaXR5IGdyb3Vwcy4KdAAhVGltZSB0byBidWlsZCBhbGwgTlNGczogMC4wMDEwNTUKdAABCnQAUD09PT09PT09PT09PT09PT09PT09PT09PT0gUkVBQ0hBQklMSVRZIFNFVCBHRU5FUkFUSU9OID09PT09PT09PT09PT09PT09PT09PT09PT0KdAAVU3BsaXQ6IFNwbGl0U3VidHJhY3QKdAAdUlMgZ2VuZXJhdGlvbiB0aW1lOiAwLjAwMDEyOQp0AB1Db21wdXRpbmcgdmFyaWFibGUgYm91bmRzLi4uCnQAAQp0AFA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBNRU1PUlkgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnQAKSBUb3RhbCBNZW1vcnkgVXNlZDog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ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALBxAH4AsHEAfgCwcQB+ALB4 diff --git a/anno3/vpc/consegne/3/3.6.jpg b/anno3/vpc/consegne/3/3.6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8549c0b727d971f9a96191fbaac1d77749e99b0d GIT binary patch literal 32553 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 literal 0 HcmV?d00001 diff --git a/anno3/vpc/consegne/3/3.8-Measures.solution/PT.bnd b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.bnd new file mode 100644 index 0000000..f845088 --- /dev/null +++ b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.bnd @@ -0,0 +1,14 @@ +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 diff --git a/anno3/vpc/consegne/3/3.8-Measures.solution/PT.ctl b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.ctl new file mode 100644 index 0000000..1aa033b --- /dev/null +++ b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.ctl @@ -0,0 +1,2 @@ +% MEASURE0 +AG(#await_P == 1 -> EF(#critical_Q==1 || #critical_P == 1)) diff --git a/anno3/vpc/consegne/3/3.8-Measures.solution/PT.def b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.def new file mode 100644 index 0000000..f9eee66 --- /dev/null +++ b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.def @@ -0,0 +1,3 @@ +|256 +% +| diff --git a/anno3/vpc/consegne/3/3.8-Measures.solution/PT.ilpbnd b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.ilpbnd new file mode 100644 index 0000000..aa47d0d --- /dev/null +++ b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.ilpbnd @@ -0,0 +1,2 @@ +0 +0 diff --git a/anno3/vpc/consegne/3/3.8-Measures.solution/PT.net b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.net new file mode 100644 index 0000000..7271b95 --- /dev/null +++ b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.net @@ -0,0 +1,105 @@ +|0| +| +f 0 14 0 12 0 0 0 +local_P 1 3.0 1.3333333333333333 3.294583333333333 1.2789583333333334 0 +await_P 0 3.0 4.333333333333333 3.185208333333333 4.112291666666667 0 +SetTrue_P 0 3.0 2.6666666666666665 3.1904166666666662 2.6122916666666667 0 +critical_P 0 3.0 5.5 3.388333333333333 5.612291666666667 0 +setFalse_P 0 3.0 7.0 3.1904166666666662 7.028958333333333 0 +wantP_FALSE 1 4.5 7.0 4.049791666666667 7.195625 0 +wantP_TRUE 0 4.5 6.0 4.820625 5.862291666666667 0 +wantQ_FALSE 1 6.333333333333333 2.6666666666666665 6.127916666666667 2.9456249999999997 0 +wantQ_TRUE 0 7.5 2.6666666666666665 6.732083333333333 2.278958333333333 0 +setFalse_Q 0 8.666666666666666 2.5 8.851875 2.6956249999999997 0 +critical_Q 0 8.666666666666666 4.0 8.96125 4.195625 0 +setTrue_Q 0 8.666666666666666 6.666666666666667 9.028958333333334 6.695625 0 +await_Q 0 8.666666666666666 5.166666666666667 8.43 5.362291666666667 0 +local_Q 1 8.666666666666666 7.833333333333333 9.034166666666666 7.445625 0 +T0 1.0 0 0 1 0 3.0 2.0 2.9791666666666665 1.8072916666666667 3.0833333333333335 2.0677083333333335 0 + 1 1 0 0 + 1 + 1 3 0 0 + 0 +T8 1.0 0 0 2 0 3.0 7.833333333333333 2.9791666666666665 7.640625 3.0833333333333335 7.901041666666667 0 + 1 5 1 0 +3.0 7.583333333333333 + 1 7 0 0 + 2 + 1 1 2 0 +1.0833333333333333 7.833333333333333 +1.0833333333333333 1.3333333333333333 + 1 6 1 0 +5.5 7.833333333333333 + 0 +T3 1.0 0 0 1 0 3.0 6.166666666666667 2.9791666666666665 5.973958333333333 3.0833333333333335 6.234375 0 + 1 4 0 0 + 1 + 1 5 0 0 + 0 +T1 1.0 0 0 2 0 3.0 5.0 2.9791666666666665 4.807291666666667 3.0833333333333335 5.067708333333333 0 + 1 2 0 0 + 1 8 1 0 +5.166666666666667 4.166666666666667 + 2 + 1 8 1 0 +5.25 4.25 + 1 4 0 0 + 0 +T2 1.0 0 0 2 0 3.0 3.3333333333333335 2.9791666666666665 3.140625 3.0833333333333335 3.4010416666666665 0 + 1 3 0 0 + -1 6 1 0 +4.166666666666667 3.3333333333333335 + 2 + -1 7 1 0 +4.333333333333333 3.6666666666666665 + 1 2 0 0 + 0 +T00 1.0 0 0 1 0 1.6666666666666667 1.0 1.6197916666666667 0.8072916666666666 1.75 1.0677083333333333 0 + 1 1 1 0 +2.4166666666666665 0.9166666666666666 + 1 + 1 1 0 0 + 0 +T4 1.0 0 0 1 1 9.5 8.333333333333334 9.479166666666666 8.140625 9.583333333333334 8.401041666666666 0 + 1 14 0 0 + 1 + 1 14 1 0 +9.0 8.25 + 0 +T5 1.0 0 0 2 0 8.666666666666666 1.5 8.645833333333334 1.3072916666666667 8.75 1.5677083333333333 0 + 1 10 0 0 + 1 9 0 0 + 2 + 1 14 2 0 +10.333333333333334 1.5 +10.333333333333334 7.833333333333333 + 1 8 1 0 +6.333333333333333 1.5 + 0 +T6 1.0 0 0 1 0 8.666666666666666 7.166666666666667 8.645833333333334 6.973958333333333 8.75 7.234375 0 + 1 14 0 0 + 1 + 1 12 0 0 + 0 +T7 1.0 0 0 2 0 8.666666666666666 4.666666666666667 8.645833333333334 4.473958333333333 8.75 4.734375 0 + 1 13 0 0 + 1 6 0 0 + 2 + 1 6 1 0 +6.583333333333333 6.0 + 1 11 0 0 + 0 +T9 1.0 0 0 2 0 8.666666666666666 6.166666666666667 8.645833333333334 5.973958333333333 8.75 6.234375 0 + 1 12 0 0 + -1 8 1 0 +7.166666666666667 6.166666666666667 + 2 + -1 9 1 0 +6.75 6.75 + 1 13 0 0 + 0 +T10 1.0 0 0 1 0 8.666666666666666 3.1666666666666665 8.619791666666666 2.9739583333333335 8.75 3.234375 0 + 1 11 0 0 + 1 + 1 10 0 0 + 0 diff --git a/anno3/vpc/consegne/3/3.8-Measures.solution/PT.pba b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.pba new file mode 100644 index 0000000..a33d892 --- /dev/null +++ b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.pba @@ -0,0 +1,8 @@ +6 +5 1 1 1 2 1 3 1 4 1 5 +4 -1 2 -1 4 -1 5 1 7 +4 1 2 1 4 1 5 1 6 +5 1 10 1 11 1 12 1 13 1 14 +4 1 9 -1 10 -1 11 -1 13 +4 1 8 1 10 1 11 1 13 +0 diff --git a/anno3/vpc/consegne/3/3.8-Measures.solution/PT.pin b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.pin new file mode 100644 index 0000000..e8276a8 --- /dev/null +++ b/anno3/vpc/consegne/3/3.8-Measures.solution/PT.pin @@ -0,0 +1,10 @@ +8 +5 1 10 1 11 1 12 1 13 1 14 +3 1 9 1 12 1 14 +4 1 8 1 10 1 11 1 13 +2 1 8 1 9 +5 1 1 1 2 1 3 1 4 1 5 +3 1 1 1 3 1 7 +4 1 2 1 4 1 5 1 6 +2 1 6 1 7 +0 diff --git a/anno3/vpc/consegne/3/3.8.PNPRO b/anno3/vpc/consegne/3/3.8.PNPRO new file mode 100644 index 0000000..c47158b --- /dev/null +++ b/anno3/vpc/consegne/3/3.8.PNPRO @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rO0ABXNyABRqYXZhLnV0aWwuTGlua2VkTGlzdAwpU11KYIgiAwAAeHB3BAAAAM90AJMbWzBtRVhFQzogL3Vzci9sb2NhbC9HcmVhdFNQTi9iaW4vRFNQTi1Ub29sIC1sb2FkICIvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuOC1NZWFzdXJlcy5zb2x1dGlvbi9QVCIgLXBiYXNpcyAtZGV0ZWN0LWV4cCAtcHNmbCAtYm5kIAp0AHAbWzFtG1s0bUxPQURJTkcgUEVUUkkgTkVUIC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy44LU1lYXN1cmVzLnNvbHV0aW9uL1BUIChuZXQvZGVmKS4uLhtbMjJtG1syNG0KdAAPTUFSS0lORyBQQVI6IDAKdAAQUExBQ0VTOiAgICAgIDE0CnQAD1JBVEUgUEFSOiAgICAwCnQAEFRSQU5TSVRJT05TOiAxMgp0AA9NRUFTVVJFUzogICAgMAp0AChMT0FESU5HIFRJTUU6IFtVc2VyIDAuMDAwcywgU3lzIDAuMDAwc10KdAABCnQAAQp0AB5DT01QVVRJTkcgUExBQ0UgRkxPVyBCQVNJUy4uLgp0ABJNPTEyLCBOPTE0LCBOMD0xNAp0ADlDb21wdXRhdGlvbiBvZiBGbG93IGJhc2lzOiBzdGVwIDEvMTIsIHxLfD0xMiwgcHJvZHVjdHM9MQp0AFMbWzFBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCnQAUhtbMUFDb21wdXRhdGlvbiBvZiBGbG93IGJhc2lzOiBjb21wbGV0ZWQgaW4gOCBzdGVwcywgfEt8PTYuICAgICAgICAgICAgICAgICAgICAgIAp0AEBGT1VORCA2IFZFQ1RPUlMgSU4gVEhFIFBMQUNFIEZMT1cgQkFTSVMgKDQgc2VtaWZsb3dzLCAyIGZsb3dzKS4KdAABCnQAAQp0ACdBbGwgcGxhY2VzIGFyZSBjb3ZlcmVkIGJ5IHNvbWUgUC1mbG93Lgp0AAEKdAAmVE9UQUwgVElNRTogW1VzZXIgMC4wMDBzLCBTeXMgMC4wMDBzXQp0ACdBVk9JRCBFWFBPTkVOVElBTCBHUk9XVEggT0YgU0VNSUZMT1dTLgp0AB1DT01QVVRJTkcgUExBQ0UgU0VNSUZMT1dTLi4uCnQAEk09MTIsIE49MTQsIE4wPTE0CnQAK0dlbmVyYXRpb24gb2YgU2VtaWZsb3dzOiBzdGVwIDEvMTIsIHxLfD0xMgp0AFMbWzFBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCnQAUBtbMUFHZW5lcmF0aW9uIG9mIFNlbWlmbG93czogY29tcGxldGVkIGluIDggc3RlcHMsIHxLfD04LiAgICAgICAgICAgICAgICAgICAgICAKdAAZRk9VTkQgOCBQTEFDRSBTRU1JRkxPV1MuCnQAAQp0AAEKdAArQWxsIHBsYWNlcyBhcmUgY292ZXJlZCBieSBzb21lIFAtc2VtaWZsb3cuCnQAAQp0ACZUT1RBTCBUSU1FOiBbVXNlciAwLjAwMHMsIFN5cyAwLjAwMHNdCnQALENPTVBVVElORyBQTEFDRSBCT1VORFMgRlJPTSBQLVNFTUlGTE9XUyAuLi4KdAAnG1swWBtbMzJtIFBST0NFU1MgRVhJVEVEIE5PUk1BTExZLhtbMG0KdACkG1swbUVYRUM6IHBlcmwgLWUgJ2FsYXJtIDUgOyBleGVjICIvdXNyL2xvY2FsL0dyZWF0U1BOL2Jpbi9EU1BOLVRvb2wgLWxvYWQgXCIvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuOC1NZWFzdXJlcy5zb2x1dGlvbi9QVFwiIC1sb2FkLWJuZCAtaWxwLWJuZCIgJwp0AHAbWzFtG1s0bUxPQURJTkcgUEVUUkkgTkVUIC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy44LU1lYXN1cmVzLnNvbHV0aW9uL1BUIChuZXQvZGVmKS4uLhtbMjJtG1syNG0KdAAPTUFSS0lORyBQQVI6IDAKdAAQUExBQ0VTOiAgICAgIDE0CnQAD1JBVEUgUEFSOiAgICAwCnQAEFRSQU5TSVRJT05TOiAxMgp0AA9NRUFTVVJFUzogICAgMAp0AChMT0FESU5HIFRJTUU6IFtVc2VyIDAuMDAwcywgU3lzIDAuMDAwc10KdAABCnQAAQp0ABVMT0FESU5HIEJORCBGSUxFIC4uLgp0ACVDT01QVVRJTkcgUExBQ0UgQk9VTkRTIFVTSU5HIElMUCAuLi4KdAAYQWxsIHBsYWNlcyBhcmUgYm91bmRlZC4KcQB+ACR0AHgbWzBtRVhFQzogL3Vzci9sb2NhbC9HcmVhdFNQTi9iaW4vUkdNRUREMyAiL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy8zLjgtTWVhc3VyZXMuc29sdXRpb24vUFQiIC1NRVRBICAtYyAtQwp0ACBSYW5kb20gc2VlZHM6IDE1ODg5NDc1NDkgNDI2NTA2CnQAUD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdAARR3JlYXRTUE4vTWVkZGx5Lgp0ADggIENvcHlyaWdodCAoQykgMTk4Ny0yMDE4LCBVbml2ZXJzaXR5IG9mIFRvcmlubywgSXRhbHkuCnQAMSAgU2VuZCBmaWxlcyBuZXRuYW1lLm5ldCwgLmRlZiB0byBlLW1haWwgYWRkcmVzcwp0ACsgIGJlY2N1dGlAZGkudW5pdG8uaXQgaWYgeW91IGZpbmQgYW55IGJ1Zy4KdABQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp0AB9CYXNlZCBvbiBNRURETFkgdmVyc2lvbiAwLjE2LjAKdABGICBDb3B5cmlnaHQgKEMpIDIwMDksIElvd2EgU3RhdGUgVW5pdmVyc2l0eSBSZXNlYXJjaCBGb3VuZGF0aW9uLCBJbmMuCnQAKSAgd2Vic2l0ZTogaHR0cDovL21lZGRseS5zb3VyY2Vmb3JnZS5uZXQKdABQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp0AClVc2luZyBwZXItZXZlbnQgc2F0dXJhdGlvbiAoc2F0LXByZWdlbikuCnQAG1VzaW5nIGZhc3QgTlNGIGdlbmVyYXRpb24uCnQAElByb2Nlc3MgSUQ6IDE0NDUxCnQAS01PREVMIE5BTUU6IC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy44LU1lYXN1cmVzLnNvbHV0aW9uL1BUCnQAHSAgMTQgcGxhY2VzLCAxMiB0cmFuc2l0aW9ucy4KdAAnVXNlZCBNZW1vcnkgZm9yIGVuY29kaW5nIG5ldDogMzk0NTY0S0IKdABVT3BlbmluZyBmaWxlOiAvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuOC1NZWFzdXJlcy5zb2x1dGlvbi9QVC5ibmQgT0suCnQAWE9wZW5pbmcgZmlsZTogL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy8zLjgtTWVhc3VyZXMuc29sdXRpb24vUFQuaWxwYm5kIE9LLgp0ABBJTlBVVCBBUkNTOiAgMTQKdAAQT1VUUFVUIEFSQ1M6IDE0CnQAD0lOSElCIEFSQ1M6ICAwCnQAD1RFU1QgQVJDUzogICA0CnQAEFBMQUNFUzogICAgICAxNAp0ABBUUkFOU0lUSU9OUzogMTIKdAAPSU5WQVJJQU5UUzogIDYKdAAPUC1TRU1JRkxPV1M6IDgKdAAWTUFYIElOVkFSSUFOVCBDQVJEOiAxCnQAAQp0AFA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFZBUklBQkxFIE9SREVSID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnQAPFZhcmlhYmxlIG9yZGVyIG1ldGhvZDogTWV0YS1oZXVyaXN0aWMgdXNpbmcgd2VpZ2h0ZWQgc2NvcmUuCnQAUSAgTUVUSE9EICAgICAgICAgICAgICBTQ09SRSAgICAgICAgU1dJUiAgICAgICBTT1VQUyBESVNDT1VOVCAgV0VJR0hUICAgICAgIFRJTUUgCnQAVSAgU0xPICAgICAgICAgICAgICAgICA2Ny4zMiAgICAgICAgICA2MCAgICAgICAgICA0MyAgICAgICAgMSAgIDEuMTIyICAgICAwLjAwMDMgc2VjLgp0AFUgIFNMTytGb3JjZSAgICAgICAgICAgNDMuMTIgICAgICAgICAgNDkgICAgICAgICAgNDIgICAgICAgIDEgICAgMC44OCAgICA2LjhlLTA1IHNlYy4KdABVICBTTE8tMTYgICAgICAgICAgICAgIDQ3Ljg4ICAgICAgICAgIDYwICAgICAgICAgIDQzICAgICAgICAxICAgMC43OTggICAgNy42ZS0wNSBzZWMuCnQAVSAgU0xPLTE2K0ZvcmNlICAgICAgIDQ0LjYzOSAgICAgICAgICA0OSAgICAgICAgICA0MiAgICAgICAgMSAgIDAuOTExICAgIDQuNmUtMDUgc2VjLgp0AFUgIFRPVjIgICAgICAgICAgICAgICA1NS40NDkgICAgICAgICAgNjEgICAgICAgICAgNDMgICAgICAgIDEgICAwLjkwOSAgICA1LjNlLTA1IHNlYy4KdABVICBUT1YyK0ZvcmNlICAgICAgICAgNTUuNTg0ICAgICAgICAgIDQ4ICAgICAgICAgIDQxICAgICAgICAxICAgMS4xNTggICAgNC41ZS0wNSBzZWMuCnQAVSAgTk9BQ0syICAgICAgICAgICAgMTc2LjQzNiAgICAgICAgIDE1NiAgICAgICAgICA2NyAgICAgICAgMSAgIDEuMTMxICAgIDMuMmUtMDUgc2VjLgp0AFUgIE5PQUNLMitGb3JjZSAgICAgICAgNDYuMDYgICAgICAgICAgNDcgICAgICAgICAgNDAgICAgICAgIDEgICAgMC45OCAgICA0LjNlLTA1IHNlYy4KdABVICBBQ00gICAgICAgICAgICAgICAgNjUuNzE1ICAgICAgICAgIDY1ICAgICAgICAgIDQ0ICAgICAgICAxICAgMS4wMTEgICAgNi43ZS0wNSBzZWMuCnQAVSAgQUNNK0ZvcmNlICAgICAgICAgIDcyLjg0NiAgICAgICAgICA1NyAgICAgICAgICA0MiAgICAgICAgMSAgIDEuMjc4ICAgIDMuMmUtMDUgc2VjLgp0AFUgIENNMiAgICAgICAgICAgICAgICA4Mi44NzUgICAgICAgICAgNjUgICAgICAgICAgNDQgICAgICAgIDEgICAxLjI3NSAgICAyLjNlLTA1IHNlYy4KdABVICBDTTIrRm9yY2UgICAgICAgICAgNjIuNjQzICAgICAgICAgIDU3ICAgICAgICAgIDQyICAgICAgICAxICAgMS4wOTkgICAgMi45ZS0wNSBzZWMuCnQAVSAgUCAgICAgICAgICAgICAgICAgMTE3LjQ4OCAgICAgICAgIDExMiAgICAgICAgICA1OSAgICAgICAgMSAgIDEuMDQ5ICAgIDIuNmUtMDUgc2VjLgp0AFUgIEdQICAgICAgICAgICAgICAgICA1MC4wMDkgICAgICAgICAgNDMgICAgICAgICAgMzcgICAgICAgIDEgICAxLjE2MyAgIDAuMDAwMTU0IHNlYy4KdABVICBHUCtGb3JjZSAgICAgICAgICAgICAgIDU0ICAgICAgICAgIDQ4ICAgICAgICAgIDM4ICAgICAgICAxICAgMS4xMjUgICAgNS40ZS0wNSBzZWMuCnQAPU1ldGEtaGV1cmlzdGljOiBzZWxlY3RpbmcgbWV0aG9kIFNMTytGb3JjZSB3aXRoIHNjb3JlOiA0My4xMgp0ACZUaW1lIHRvIGNvbXB1dGUgdmFyaWFibGUgb3JkZXI6IDAuMDAyCnQAAQp0AFA9PT09PT09PT09PT09PT09PT09PT09PT09IFNUQVJUIEZJUklORyBSVUxFUyBFTkNPRElORyA9PT09PT09PT09PT09PT09PT09PT09PT09CnQALEVuY29kZWQgMTIgdHJhbnNpdGlvbiBpbiAxIHByaW9yaXR5IGdyb3Vwcy4KdAAhVGltZSB0byBidWlsZCBhbGwgTlNGczogMC4wMDA0MDIKdAABCnQAUD09PT09PT09PT09PT09PT09PT09PT09PT0gUkVBQ0hBQklMSVRZIFNFVCBHRU5FUkFUSU9OID09PT09PT09PT09PT09PT09PT09PT09PT0KdAAVU3BsaXQ6IFNwbGl0U3VidHJhY3QKdAAdUlMgZ2VuZXJhdGlvbiB0aW1lOiAwLjAwMDEwNAp0AB1Db21wdXRpbmcgdmFyaWFibGUgYm91bmRzLi4uCnQAAQp0AFA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBNRU1PUlkgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnQAKSBUb3RhbCBNZW1vcnkgVXNlZDogICAg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ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0XEAfgDRcQB+ANFxAH4A0Xg + + diff --git a/anno3/vpc/consegne/3/3.8.jpg b/anno3/vpc/consegne/3/3.8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5dbc1797e6887d38eff99f7f217105daa111faa7 GIT binary patch literal 50602 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 literal 0 HcmV?d00001 diff --git a/anno3/vpc/consegne/3/3.8.smv b/anno3/vpc/consegne/3/3.8.smv new file mode 100644 index 0000000..6da56ed --- /dev/null +++ b/anno3/vpc/consegne/3/3.8.smv @@ -0,0 +1,49 @@ +MODULE main +VAR + wantP: boolean; + wantQ: boolean; + p: proc(wantP, wantQ); + q: proc(wantQ, wantP); +ASSIGN + init(wantP) := FALSE; + init(wantQ) := FALSE; + + next(wantP) := case + p.state = setTrue: TRUE; + p.state = setFalse: FALSE; + TRUE: wantP; + esac; + next(wantQ) := case + q.state = setTrue: TRUE; + q.state = setFalse: FALSE; + TRUE: wantQ; + esac; + +CTLSPEC -- no mutual exclusion + AG (p.state != critical | q.state != critical) + +CTLSPEC -- no deadlock + AG ((p.state = await | q.state = await) -> AF (p.state = critical | q.state = critical)) + +CTLSPEC -- no individual starvation + AG (p.state = await -> AF p.state = critical) +CTLSPEC + AG (q.state = await -> AF q.state = critical) + +CTLSPEC -- prova: path senza starvation + AG (q.state = await -> EF q.state = critical) + + +MODULE proc(mine, other) +VAR + state: {local, await, critical, setTrue, setFalse}; +ASSIGN + init(state) := local; + next(state) := case + state = local: {local, setTrue}; + state = await & other = FALSE: critical; + state = await: await; + state = setTrue: await; + state = critical: setFalse; + state = setFalse: local; + esac; \ No newline at end of file diff --git a/anno3/vpc/consegne/3/3.9-Measures.solution/PT.bnd b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.bnd new file mode 100644 index 0000000..6afc04b --- /dev/null +++ b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.bnd @@ -0,0 +1,16 @@ +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 +0 1 diff --git a/anno3/vpc/consegne/3/3.9-Measures.solution/PT.ctl b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.ctl new file mode 100644 index 0000000..18db1fe --- /dev/null +++ b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.ctl @@ -0,0 +1,2 @@ +% MEASURE0 +AG (#setTrue_Q==1 -> AF (#critical_Q == 1)) diff --git a/anno3/vpc/consegne/3/3.9-Measures.solution/PT.def b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.def new file mode 100644 index 0000000..f9eee66 --- /dev/null +++ b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.def @@ -0,0 +1,3 @@ +|256 +% +| diff --git a/anno3/vpc/consegne/3/3.9-Measures.solution/PT.ilpbnd b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.ilpbnd new file mode 100644 index 0000000..aa47d0d --- /dev/null +++ b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.ilpbnd @@ -0,0 +1,2 @@ +0 +0 diff --git a/anno3/vpc/consegne/3/3.9-Measures.solution/PT.net b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.net new file mode 100644 index 0000000..1dbe0bc --- /dev/null +++ b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.net @@ -0,0 +1,166 @@ +|0| +| +f 0 16 0 16 0 0 0 +local_P 1 3.3333333333333335 1.6666666666666667 3.6279166666666662 1.6122916666666667 0 +setTrue_P 0 3.3333333333333335 3.0 3.5341666666666662 2.9456249999999997 0 +critical_P 0 3.3333333333333335 6.5 3.7216666666666662 6.612291666666667 0 +setFalse_P 0 3.3333333333333335 7.666666666666667 3.5237499999999997 7.695625 0 +wantP_FALSE 1 7.833333333333333 7.666666666666667 7.383125 7.862291666666667 0 +wantP_TRUE 0 4.666666666666667 7.5 5.070625 7.445625 0 +While 0 3.3333333333333335 4.5 3.169583333333333 4.695625 0 +P0 0 4.0 5.333333333333333 3.9560416666666662 5.528958333333333 0 +wantQ_FALSE 1 7.5 2.8333333333333335 7.044583333333333 3.028958333333333 0 +wantQ_TRUE 0 7.833333333333333 4.833333333333333 7.39875 5.028958333333333 0 +local_Q 1 10.833333333333334 1.5 11.1175 1.445625 0 +setTrue_Q 0 10.833333333333334 2.8333333333333335 11.278958333333334 2.778958333333333 0 +critical_Q 0 10.833333333333334 6.333333333333333 11.21125 6.445625 0 +setFalse_Q 0 10.833333333333334 7.5 11.018541666666666 7.528958333333333 0 +While_ 0 10.833333333333334 4.333333333333333 10.888333333333334 4.612291666666667 0 +P1 0 8.833333333333334 6.333333333333333 8.789375 6.528958333333333 0 +T0 1.0 0 0 1 0 3.3333333333333335 2.3333333333333335 3.3125 2.140625 3.4166666666666665 2.4010416666666665 0 + 1 1 0 0 + 1 + 1 2 0 0 + 0 +reset_transition 1.0 0 0 2 0 3.3333333333333335 8.166666666666666 2.8802083333333335 8.557291666666666 3.4166666666666665 8.234375 0 + 1 4 1 0 +3.3333333333333335 7.916666666666667 + 1 6 0 0 + 2 + -1 1 2 0 +0.75 8.166666666666666 +0.75 1.6666666666666667 + 1 5 1 0 +5.833333333333333 8.166666666666666 + 0 +T3 1.0 0 0 1 0 3.3333333333333335 7.0 3.3125 6.807291666666667 3.4166666666666665 7.067708333333333 0 + 1 3 0 0 + 1 + 1 4 0 0 + 0 +T2 1.0 0 0 2 0 3.3333333333333335 3.8333333333333335 3.3125 3.640625 3.4166666666666665 3.9010416666666665 0 + 1 2 0 0 + -1 5 1 0 +4.5 3.6666666666666665 + 2 + -1 6 1 0 +2.3333333333333335 4.0 + 1 7 0 0 + 0 +T00 1.0 0 0 1 0 2.0 1.3333333333333333 1.953125 1.140625 2.0833333333333335 1.4010416666666667 0 + 1 1 1 0 +2.75 1.25 + 1 + 1 1 0 0 + 0 +T1 1.0 0 0 2 2 1.0 5.166666666666667 0.9791666666666666 4.973958333333333 1.0833333333333333 5.234375 0 + 1 7 0 0 + -1 9 1 0 +2.5 2.9166666666666665 + 2 + 1 3 2 0 +1.5 6.333333333333333 +1.9166666666666667 6.583333333333333 + -1 9 1 0 +0.5833333333333334 5.583333333333333 + 0 +T4 1.0 0 0 3 3 5.0 5.0 4.979166666666667 4.807291666666667 5.083333333333333 5.067708333333333 0 + 1 7 0 0 + -1 6 1 0 +8.416666666666666 3.5833333333333335 + -1 10 2 0 +4.416666666666667 3.5833333333333335 +5.916666666666667 3.25 + 3 + 1 8 0 0 + -1 5 2 0 +6.416666666666667 5.666666666666667 +8.333333333333334 7.416666666666667 + -1 10 2 0 +3.25 6.583333333333333 +4.666666666666667 6.333333333333333 + 0 +T5 1.0 0 0 2 1 3.3333333333333335 5.666666666666667 3.3125 5.473958333333333 3.4166666666666665 5.734375 0 + 1 8 0 0 + -1 5 1 0 +4.083333333333333 6.25 + 2 + 1 7 0 0 + -1 6 3 0 +0.5 6.083333333333333 +0.3333333333333333 9.25 +7.75 9.083333333333334 + 0 +T15 1.0 0 0 1 0 10.833333333333334 2.1666666666666665 10.786458333333334 1.9739583333333333 10.916666666666666 2.234375 0 + 1 11 0 0 + 1 + 1 12 0 0 + 0 +reset_Transition 1.0 0 0 1 0 10.833333333333334 8.0 10.359375 8.390625 10.916666666666666 8.067708333333334 0 + 1 14 1 0 +10.833333333333334 7.75 + 1 + -1 11 2 0 +7.5 8.0 +7.5 1.5 + 0 +T9 1.0 0 0 1 0 10.833333333333334 6.833333333333333 10.8125 6.640625 10.916666666666666 6.901041666666667 0 + 1 13 0 0 + 1 + 1 14 0 0 + 0 +T12 1.0 0 0 2 0 10.833333333333334 3.6666666666666665 10.786458333333334 3.4739583333333335 10.916666666666666 3.734375 0 + 1 12 0 0 + -1 9 0 0 + 2 + 1 15 0 0 + -1 10 4 0 +13.666666666666666 3.6666666666666665 +14.0 8.333333333333334 +9.75 8.583333333333334 +9.583333333333334 8.5 + 0 +T100 1.0 0 0 1 0 9.5 1.1666666666666667 9.427083333333334 0.9739583333333334 9.583333333333334 1.234375 0 + 1 11 1 0 +10.25 1.0833333333333333 + 1 + 1 11 0 0 + 0 +T11 1.0 0 0 2 1 10.833333333333334 5.5 10.786458333333334 5.307291666666667 10.916666666666666 5.567708333333333 0 + 1 16 1 0 +10.833333333333334 5.916666666666667 + -1 9 2 0 +10.2587890625 5.50703125 +10.083333333333334 6.25 + 2 + 1 15 0 0 + -1 10 2 0 +12.416666666666666 5.916666666666667 +9.25 6.833333333333333 + 0 +T6 1.0 0 0 3 2 9.333333333333334 5.0 7.979166666666667 1.390625 9.416666666666666 5.067708333333333 0 + 1 15 0 0 + -1 6 1 0 +9.25 4.083333333333333 + 1 10 0 0 + 3 + 1 16 0 0 + -1 6 2 0 +10.0 5.0 +10.0 7.333333333333333 + 1 9 0 0 + 0 +T7 1.0 0 0 2 1 13.166666666666666 5.166666666666667 13.145833333333334 4.973958333333333 13.25 5.234375 0 + 1 15 0 0 + -1 5 2 0 +13.166666666666666 3.25 +6.333333333333333 4.0 + 2 + 1 13 1 0 +13.166666666666666 6.333333333333333 + -1 5 4 0 +13.5 5.166666666666667 +13.416666666666666 9.0 +11.0 9.166666666666666 +7.25 9.083333333333334 + 0 diff --git a/anno3/vpc/consegne/3/3.9-Measures.solution/PT.pba b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.pba new file mode 100644 index 0000000..7ebe769 --- /dev/null +++ b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.pba @@ -0,0 +1,7 @@ +5 +2 1 9 1 10 +6 1 11 1 12 1 13 1 14 1 15 1 16 +4 -1 3 -1 4 1 6 -1 7 +4 1 3 1 4 1 5 1 7 +6 1 1 1 2 1 3 1 4 1 7 1 8 +0 diff --git a/anno3/vpc/consegne/3/3.9-Measures.solution/PT.pin b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.pin new file mode 100644 index 0000000..0c105f0 --- /dev/null +++ b/anno3/vpc/consegne/3/3.9-Measures.solution/PT.pin @@ -0,0 +1,8 @@ +6 +6 1 1 1 2 1 3 1 4 1 7 1 8 +4 1 1 1 2 1 6 1 8 +4 1 3 1 4 1 5 1 7 +2 1 5 1 6 +6 1 11 1 12 1 13 1 14 1 15 1 16 +2 1 9 1 10 +0 diff --git a/anno3/vpc/consegne/3/3.9.PNPRO b/anno3/vpc/consegne/3/3.9.PNPRO new file mode 100644 index 0000000..da0e072 --- /dev/null +++ b/anno3/vpc/consegne/3/3.9.PNPRO @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rO0ABXNyABRqYXZhLnV0aWwuTGlua2VkTGlzdAwpU11KYIgiAwAAeHB3BAAAAMF0AJMbWzBtRVhFQzogL3Vzci9sb2NhbC9HcmVhdFNQTi9iaW4vRFNQTi1Ub29sIC1sb2FkICIvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuOS1NZWFzdXJlcy5zb2x1dGlvbi9QVCIgLXBiYXNpcyAtZGV0ZWN0LWV4cCAtcHNmbCAtYm5kIAp0AHAbWzFtG1s0bUxPQURJTkcgUEVUUkkgTkVUIC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy45LU1lYXN1cmVzLnNvbHV0aW9uL1BUIChuZXQvZGVmKS4uLhtbMjJtG1syNG0KdAAPTUFSS0lORyBQQVI6IDAKdAAQUExBQ0VTOiAgICAgIDE2CnQAD1JBVEUgUEFSOiAgICAwCnQAEFRSQU5TSVRJT05TOiAxNgp0AA9NRUFTVVJFUzogICAgMAp0AChMT0FESU5HIFRJTUU6IFtVc2VyIDAuMDAwcywgU3lzIDAuMDAwc10KdAABCnQAAQp0AB5DT01QVVRJTkcgUExBQ0UgRkxPVyBCQVNJUy4uLgp0ABJNPTE2LCBOPTE2LCBOMD0xNgp0ADlDb21wdXRhdGlvbiBvZiBGbG93IGJhc2lzOiBzdGVwIDEvMTYsIHxLfD0xNCwgcHJvZHVjdHM9MQp0AFMbWzFBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCnQAUxtbMUFDb21wdXRhdGlvbiBvZiBGbG93IGJhc2lzOiBjb21wbGV0ZWQgaW4gMTEgc3RlcHMsIHxLfD01LiAgICAgICAgICAgICAgICAgICAgICAKdABARk9VTkQgNSBWRUNUT1JTIElOIFRIRSBQTEFDRSBGTE9XIEJBU0lTICg0IHNlbWlmbG93cywgMSBmbG93cykuCnQAAQp0AAEKdAAnQWxsIHBsYWNlcyBhcmUgY292ZXJlZCBieSBzb21lIFAtZmxvdy4KdAABCnQAJlRPVEFMIFRJTUU6IFtVc2VyIDAuMDAwcywgU3lzIDAuMDAwc10KdAAnQVZPSUQgRVhQT05FTlRJQUwgR1JPV1RIIE9GIFNFTUlGTE9XUy4KdAAdQ09NUFVUSU5HIFBMQUNFIFNFTUlGTE9XUy4uLgp0ABJNPTE2LCBOPTE2LCBOMD0xNgp0ACtHZW5lcmF0aW9uIG9mIFNlbWlmbG93czogc3RlcCAxLzE2LCB8S3w9MTQKdABTG1sxQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp0AFEbWzFBR2VuZXJhdGlvbiBvZiBTZW1pZmxvd3M6IGNvbXBsZXRlZCBpbiAxMSBzdGVwcywgfEt8PTYuICAgICAgICAgICAgICAgICAgICAgIAp0ABlGT1VORCA2IFBMQUNFIFNFTUlGTE9XUy4KdAABCnQAAQp0ACtBbGwgcGxhY2VzIGFyZSBjb3ZlcmVkIGJ5IHNvbWUgUC1zZW1pZmxvdy4KdAABCnQAJlRPVEFMIFRJTUU6IFtVc2VyIDAuMDAwcywgU3lzIDAuMDAwc10KdAAsQ09NUFVUSU5HIFBMQUNFIEJPVU5EUyBGUk9NIFAtU0VNSUZMT1dTIC4uLgp0ACcbWzBYG1szMm0gUFJPQ0VTUyBFWElURUQgTk9STUFMTFkuG1swbQp0AKQbWzBtRVhFQzogcGVybCAtZSAnYWxhcm0gNSA7IGV4ZWMgIi91c3IvbG9jYWwvR3JlYXRTUE4vYmluL0RTUE4tVG9vbCAtbG9hZCBcIi9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy45LU1lYXN1cmVzLnNvbHV0aW9uL1BUXCIgLWxvYWQtYm5kIC1pbHAtYm5kIiAnCnQAcBtbMW0bWzRtTE9BRElORyBQRVRSSSBORVQgL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy8zLjktTWVhc3VyZXMuc29sdXRpb24vUFQgKG5ldC9kZWYpLi4uG1syMm0bWzI0bQp0AA9NQVJLSU5HIFBBUjogMAp0ABBQTEFDRVM6ICAgICAgMTYKdAAPUkFURSBQQVI6ICAgIDAKdAAQVFJBTlNJVElPTlM6IDE2CnQAD01FQVNVUkVTOiAgICAwCnQAKExPQURJTkcgVElNRTogW1VzZXIgMC4wMDBzLCBTeXMgMC4wMDBzXQp0AAEKdAABCnQAFUxPQURJTkcgQk5EIEZJTEUgLi4uCnQAJUNPTVBVVElORyBQTEFDRSBCT1VORFMgVVNJTkcgSUxQIC4uLgp0ABhBbGwgcGxhY2VzIGFyZSBib3VuZGVkLgpxAH4AJHQAeBtbMG1FWEVDOiAvdXNyL2xvY2FsL0dyZWF0U1BOL2Jpbi9SR01FREQzICIvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuOS1NZWFzdXJlcy5zb2x1dGlvbi9QVCIgLU1FVEEgIC1jIC1DCnQAIFJhbmRvbSBzZWVkczogMTU4ODk1ODU4MSAyMDE5ODYKdABQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp0ABFHcmVhdFNQTi9NZWRkbHkuCnQAOCAgQ29weXJpZ2h0IChDKSAxOTg3LTIwMTgsIFVuaXZlcnNpdHkgb2YgVG9yaW5vLCBJdGFseS4KdAAxICBTZW5kIGZpbGVzIG5ldG5hbWUubmV0LCAuZGVmIHRvIGUtbWFpbCBhZGRyZXNzCnQAKyAgYmVjY3V0aUBkaS51bml0by5pdCBpZiB5b3UgZmluZCBhbnkgYnVnLgp0AFA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnQAH0Jhc2VkIG9uIE1FRERMWSB2ZXJzaW9uIDAuMTYuMAp0AEYgIENvcHlyaWdodCAoQykgMjAwOSwgSW93YSBTdGF0ZSBVbml2ZXJzaXR5IFJlc2VhcmNoIEZvdW5kYXRpb24sIEluYy4KdAApICB3ZWJzaXRlOiBodHRwOi8vbWVkZGx5LnNvdXJjZWZvcmdlLm5ldAp0AFA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnQAKVVzaW5nIHBlci1ldmVudCBzYXR1cmF0aW9uIChzYXQtcHJlZ2VuKS4KdAAbVXNpbmcgZmFzdCBOU0YgZ2VuZXJhdGlvbi4KdAASUHJvY2VzcyBJRDogMjUwMzcKdABLTU9ERUwgTkFNRTogL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy8zLjktTWVhc3VyZXMuc29sdXRpb24vUFQKdAAdICAxNiBwbGFjZXMsIDE2IHRyYW5zaXRpb25zLgp0ACdVc2VkIE1lbW9yeSBmb3IgZW5jb2RpbmcgbmV0OiA0NTUxNDBLQgp0AFVPcGVuaW5nIGZpbGU6IC9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvMy45LU1lYXN1cmVzLnNvbHV0aW9uL1BULmJuZCBPSy4KdABYT3BlbmluZyBmaWxlOiAvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zLzMuOS1NZWFzdXJlcy5zb2x1dGlvbi9QVC5pbHBibmQgT0suCnQAEElOUFVUIEFSQ1M6ICAyMQp0ABBPVVRQVVQgQVJDUzogMjEKdAAPSU5ISUIgQVJDUzogIDAKdAAPVEVTVCBBUkNTOiAgIDYKdAAQUExBQ0VTOiAgICAgIDE2CnQAEFRSQU5TSVRJT05TOiAxNgp0AA9JTlZBUklBTlRTOiAgNQp0AA9QLVNFTUlGTE9XUzogNgp0ABZNQVggSU5WQVJJQU5UIENBUkQ6IDEKdAABCnQAUD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVkFSSUFCTEUgT1JERVIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdAA8VmFyaWFibGUgb3JkZXIgbWV0aG9kOiBNZXRhLWhldXJpc3RpYyB1c2luZyB3ZWlnaHRlZCBzY29yZS4KdABRICBNRVRIT0QgICAgICAgICAgICAgIFNDT1JFICAgICAgICBTV0lSICAgICAgIFNPVVBTIERJU0NPVU5UICBXRUlHSFQgICAgICAgVElNRSAKdABVICBTTE8gICAgICAgICAgICAgICAxNjcuMTc4ICAgICAgICAgMTQ5ICAgICAgICAgIDgwICAgICAgICAxICAgMS4xMjIgICAwLjAwMDE5OCBzZWMuCnQAVSAgU0xPK0ZvcmNlICAgICAgICAgICA2Ny43NiAgICAgICAgICA3NyAgICAgICAgICA2MSAgICAgICAgMSAgICAwLjg4ICAgIDcuMWUtMDUgc2VjLgp0AFUgIFNMTy0xNiAgICAgICAgICAgIDExOC45MDIgICAgICAgICAxNDkgICAgICAgICAgODAgICAgICAgIDEgICAwLjc5OCAgICA5LjVlLTA1IHNlYy4KdABVICBTTE8tMTYrRm9yY2UgICAgICAgNzAuMTQ3ICAgICAgICAgIDc3ICAgICAgICAgIDYxICAgICAgICAxICAgMC45MTEgICAgNi40ZS0wNSBzZWMuCnQAVSAgVE9WMiAgICAgICAgICAgICAgMTYwLjg5MyAgICAgICAgIDE3NyAgICAgICAgICA3OSAgICAgICAgMSAgIDAuOTA5ICAgIDkuOWUtMDUgc2VjLgp0AFUgIFRPVjIrRm9yY2UgICAgICAgICA5Ny4yNzIgICAgICAgICAgODQgICAgICAgICAgNzcgICAgICAgIDEgICAxLjE1OCAgICA4LjVlLTA1IHNlYy4KdABVICBOT0FDSzIgICAgICAgICAgICAyMTAuMzY2ICAgICAgICAgMTg2ICAgICAgICAgIDgxICAgICAgICAxICAgMS4xMzEgICAgNi45ZS0wNSBzZWMuCnQAVSAgTk9BQ0syK0ZvcmNlICAgICAgICA4NS4yNiAgICAgICAgICA4NyAgICAgICAgICA3NiAgICAgICAgMSAgICAwLjk4ICAgIDYuMmUtMDUgc2VjLgp0AFUgIEFDTSAgICAgICAgICAgICAgIDIxMS4yOTkgICAgICAgICAyMDkgICAgICAgICAgODMgICAgICAgIDEgICAxLjAxMSAgICA4LjVlLTA1IHNlYy4KdABVICBBQ00rRm9yY2UgICAgICAgICAgIDg5LjQ2ICAgICAgICAgIDcwICAgICAgICAgIDU3ICAgICAgICAxICAgMS4yNzggICAgNS40ZS0wNSBzZWMuCnQAVSAgQ00yICAgICAgICAgICAgICAgMTI4Ljc3NSAgICAgICAgIDEwMSAgICAgICAgICA2NCAgICAgICAgMSAgIDEuMjc1ICAgIDUuMmUtMDUgc2VjLgp0AFUgIENNMitGb3JjZSAgICAgICAgICAgNzYuOTMgICAgICAgICAgNzAgICAgICAgICAgNTcgICAgICAgIDEgICAxLjA5OSAgICAzLjhlLTA1IHNlYy4KdABVICBQICAgICAgICAgICAgICAgICAxMjEuNjg0ICAgICAgICAgMTE2ICAgICAgICAgIDk3ICAgICAgICAxICAgMS4wNDkgICAgMy40ZS0wNSBzZWMuCnQAVSAgR1AgICAgICAgICAgICAgICAgIDg3LjIyNSAgICAgICAgICA3NSAgICAgICAgICA2NiAgICAgICAgMSAgIDEuMTYzICAgMC4wMDAyMTIgc2VjLgp0AFUgIEdQK0ZvcmNlICAgICAgICAgICA3MC44NzUgICAgICAgICAgNjMgICAgICAgICAgNTQgICAgICAgIDEgICAxLjEyNSAgICA1LjVlLTA1IHNlYy4KdAA9TWV0YS1oZXVyaXN0aWM6IHNlbGVjdGluZyBtZXRob2QgU0xPK0ZvcmNlIHdpdGggc2NvcmU6IDY3Ljc2CnQAKVRpbWUgdG8gY29tcHV0ZSB2YXJpYWJsZSBvcmRlcjogMC4wMDI0OTQKdAABCnQAUD09PT09PT09PT09PT09PT09PT09PT09PT0gU1RBUlQgRklSSU5HIFJVTEVTIEVOQ09ESU5HID09PT09PT09PT09PT09PT09PT09PT09PT0KdAAsRW5jb2RlZCAxNiB0cmFuc2l0aW9uIGluIDEgcHJpb3JpdHkgZ3JvdXBzLgp0ACFUaW1lIHRvIGJ1aWxkIGFsbCBOU0ZzOiAwLjAwMDkzOQp0AAEKdABQPT09PT09PT09PT09PT09PT09PT09PT09PSBSRUFDSEFCSUxJVFkgU0VUIEdFTkVSQVRJT04gPT09PT09PT09PT09PT09PT09PT09PT09PQp0ABVTcGxpdDogU3BsaXRTdWJ0cmFjdAp0AB1SUyBnZW5lcmF0aW9uIHRpbWU6IDAuMDAwNTcxCnQAHUNvbXB1dGluZyB2YXJpYWJsZSBib3VuZHMuLi4KdAABCnQAUD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE1FTU9SWSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdAApIFRvdGFsIE1lbW9yeSBVc2Vk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AH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMNxAH4Aw3EAfgDDcQB+AMN4 + + diff --git a/anno3/vpc/consegne/3/3.9.jpg b/anno3/vpc/consegne/3/3.9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..13bd23d2cdb36ac2e71434c9e7118771ed73edc4 GIT binary patch literal 50716 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�n}N@^s#`CgNOEY^n(^r^*n8dZ)Rl_p*64!XLU( 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 AF (p.state = critical | q.state = critical)) + +CTLSPEC -- no individual starvation + AG (p.state = setTrue -> AF p.state = critical) +CTLSPEC + AG (q.state = setTrue -> AF q.state = critical) + + +MODULE proc(mine, other) +VAR + state: {local, critical, setTrue, setFalse, resetTrue, resetFalse}; +ASSIGN + init(state) := local; + next(state) := case + state = local: {local, setTrue}; + state = setTrue & other = TRUE: resetFalse; + state = setTrue & other = FALSE: critical; + state = resetFalse: resetTrue; + state = resetTrue & other = TRUE: resetFalse; + state = resetTrue & other = FALSE: critical; + state = critical: setFalse; + state = setFalse: local; + esac; + next(mine) := case + state = setTrue: TRUE; + state = setFalse: FALSE; + state = resetTrue: TRUE; + state = resetFalse: FALSE; + TRUE: mine; + esac; +FAIRNESS + running \ No newline at end of file diff --git a/anno3/vpc/consegne/3/analisi.org b/anno3/vpc/consegne/3/analisi.org index aebf098..83d4a3c 100644 --- a/anno3/vpc/consegne/3/analisi.org +++ b/anno3/vpc/consegne/3/analisi.org @@ -15,7 +15,6 @@ # ** GreatSPN # ** TODO CCS # ** Risultati - Nella tabella mostriamo i risultati ottenuti | | NuSMV | GreatSPN | |---------------------+-------+----------| @@ -32,7 +31,8 @@ Nella tabella mostriamo i risultati ottenuti - [ ] Controlla in 3.6 Starvation: nusmv no, greatspn si` - [ ] 3.6, dealock: correttezza spiegazione della differenza greatspn nusmv? - [ ] 3.6, starvation: perche` nusmv con processi non ha starvation? -- [ ] 3.6, perche` Amparore ha detto che deadlock: AG(EF(#critical_P == 1)) ?? +- [ ] 3.6, Amparore ha detto che deadlock: AG(EF(#critical_P == 1)) ?? +- [ ] 3.6, inserisci controesempi dove necessario NOTA: nel caso di Ampararore, la formula: | da qualsiasi stato e` sempre possibile arrivare a critical_P == 1 @@ -231,6 +231,7 @@ AG(!(#critical_P == 1) || !(#critical_Q == 1)) AG ((#await_P==1 || \#await_Q == 1) -> AF (#critical_P == 1 || \#critical_Q == 1)) AG (#await_P==1 -> AF (#critical_P == 1)) #+END_SRC +[[./3.6.jpg]] ** TODO CCS ** TODO Risultati @@ -256,3 +257,364 @@ seguente formula CTL | AG (wā‚š ā†’ EF (cā‚š || c_{q})) | AG(#await_P == 1 -> EF(#critical_Q==1 || \#critical_P == 1)) che risulta rispettata. +* Algoritmo 3.8 +Due processi iterano all'infinito seguendo questo pseudocodice + +#+BEGIN_SRC +while true: + non-critical section + wantP <- true + await wantQ = false + critical section + wantP <- false +#+END_SRC + +** NuSMV +Si e` deciso di modellare l'algoritmo allo stesso modo del precedente. +#+include 3.8.b.smv +** GreatSPN +Il codice utilizzato per le proprieta` CTL e` il seguente: +#+BEGIN_SRC +AG(!(#critical_P == 1) || !(#critical_Q == 1)) +AG ((#await_P==1 || \#await_Q == 1) -> AF (#critical_P == 1 || \#critical_Q == 1)) +AG (#await_P==1 -> AF (#critical_P == 1)) +AG (#await_Q==1 -> AF (#critical_Q == 1)) +#+END_SRC +Inoltre, per confermare alcune ipotesi, si e` testata anche la +seguente formula CTL: +| AG(#await_P == 1 -> EF(#critical_Q==1 || \#critical_P == 1)) +che conferma la presenza di deadlock causata dalle due variabili booleane. +[[./3.8.jpg]] +** TODO CCS +** Risultati +Nella tabella mostriamo i risultati ottenuti +| | NuSMV | GreatSPN | +|---------------------+-------+----------| +| Mutua Esclusione | True | True | +| Assenza di deadlock | False | False | +| No Starvation | False | False | +Questo algoritmo rispetto al precedente garantisce la mutua +esclusione, ma non ci permette di evitare il deadlock (e di +conseguenza neanche la starvation individuale). + +Di seguito riportiamo la traccia di NuSMV che mostra che il deadlock +avviene quando i progetti eseguono /setTrue/ nello stesso momento. +#+BEGIN_SRC +-- specification AG ((p.state = await | q.state = await) -> AF (p.state = critical | q.state = critical)) is false +-- as demonstrated by the following execution sequence +Trace Description: CTL Counterexample +Trace Type: Counterexample + -> State: 1.1 <- + wantP = FALSE + wantQ = FALSE + p.state = local + q.state = local + -> State: 1.2 <- + p.state = setTrue + q.state = setTrue + -- Loop starts here + -> State: 1.3 <- + wantP = TRUE + wantQ = TRUE + p.state = await + q.state = await + -> State: 1.4 <- +#+END_SRC +Mostriamo invece il controesempio generato da GreatSPN che ci mostra +una condizione di starvation individuale, dove, come in precedenza, il +processo Q rimane in /local_Q/. +#+BEGIN_SRC +Generated counter-example: +==================================== Trace ==================================== +Initial state is: local_P(1), wantP_FALSE(1), wantQ_FALSE(1), local_Q(1) +Initial state satisfies: E F (not ((not (await_P = 1)) or (not E G (not (critical_P = 1))))). + +1: local_P(1), wantP_FALSE(1), wantQ_FALSE(1), local_Q(1) + State 1. satisfies: ((not (await_P = 1)) or (not E G (not (critical_P = 1)))). + + 1.1: local_P(1), wantP_FALSE(1), wantQ_FALSE(1), local_Q(1) + State 1.1. does not satisfy: (await_P = 1). + +2: SetTrue_P(1), wantP_FALSE(1), wantQ_FALSE(1), local_Q(1) + State 2. satisfies: ((not (await_P = 1)) or (not E G (not (critical_P = 1)))). + + 2.1: SetTrue_P(1), wantP_FALSE(1), wantQ_FALSE(1), local_Q(1) + State 2.1. does not satisfy: (await_P = 1). + +3: wantP_TRUE(1), await_P(1), wantQ_FALSE(1), local_Q(1) + State 3. does not satisfy: ((not (await_P = 1)) or (not E G (not (critical_P = 1)))). + + 3.1: wantP_TRUE(1), await_P(1), wantQ_FALSE(1), local_Q(1) + State 3.1.L. satisfies: (await_P = 1). + + State 3.1.R. satisfies: E G (not (critical_P = 1)). Start of loop. + + 3.1.R.1: wantP_TRUE(1), await_P(1), wantQ_FALSE(1), local_Q(1) + State 3.1.R.1. does not satisfy: (critical_P = 1). + + 3.1.R.2: loop back to state 3.1.R.1. +#+END_SRC + +* Algoritmo 3.9 +Due processi iterano all'infinito seguendo questo pseudocodice + +#+BEGIN_SRC +while true: + non-critical section + wantP <- true + while wantQ + wantP <- false + wantP <- true + critical section + wantP <- false +#+END_SRC +(l'altro processo segue uno pseudocodice simmetrico) + +** NuSMV +Si e` deciso di modellare l'algoritmo usando per ognuno dei due +processi utilizzando l'espressione /process/ per simulare di NuSMV e +per ciascun process una variabile /state/ di tipo enumerazione +| state: {local, critical, setTrue, setFalse, resetTrue, resetFalse}; +Benche` non fosse necessario distinguere il set della variabile +booleana /wantP/, si e` preferito farlo in quanto l'enumerazione di +tutti gli stati possibili, come evidenziato dal codice che segue, non +risulta complesso. +#+include 3.9.smv + +** GreatSPN +Il codice utilizzato per le proprieta` CTL e` il seguente: +#+BEGIN_SRC +AG(!(#critical_P == 1) || !(#critical_Q == 1)) +AG ((#setTrue_P==1 || \#setTrue_Q == 1) -> AF (#critical_P == 1 || \#critical_Q == 1)) +AG (#setTrue_P==1 -> AF (#critical_P == 1)) +AG (#setTrue_Q==1 -> AF (#critical_Q == 1)) +#+END_SRC +Inoltre, per confermare alcune ipotesi, si e` testata anche la +seguente formula CTL: +| AG(#setTrue_P == 1 -> EF(#critical_Q==1 || \#critical_P == 1)) +che conferma la presenza di deadlock causata dalle due variabili +booleane. +[[./3.9.jpg]] +** TODO CCS +** Risultati +Nella tabella mostriamo i risultati ottenuti +| | NuSMV | GreatSPN | +|---------------------+-------+----------| +| Mutua Esclusione | true | true | +| Assenza di deadlock | false | false | +| No Starvation | false | false | + +Il deadlock si verifica quando i entrambe le variabili booleane sono +uguali a /true/. +Ad esempio, se si esegue in locksetop il loop con la +condizione booleana sulla variabile dell'altro processo, si verifica +la condizione di deadlock. +Viene riportato il trace di NuSMV che conferma questa ipotesi. +GreatSPN fallisce per mancanza di RAM sulla macchina usata ma e` +facile riprodurre il deadlock manualmente. +#+BEGIN_SRC +-- specification AG ((p.state = setTrue | q.state = setTrue) -> AF (p.state = critical | q.state = critical)) is false +-- as demonstrated by the following execution sequence +Trace Description: CTL Counterexample +Trace Type: Counterexample + -> State: 1.1 <- + wantP = FALSE + wantQ = FALSE + p.state = local + q.state = local + -> Input: 1.2 <- + _process_selector_ = p + running = FALSE + q.running = FALSE + p.running = TRUE + -> State: 1.2 <- + p.state = setTrue + -> Input: 1.3 <- + -> State: 1.3 <- + wantP = TRUE + p.state = critical + -> Input: 1.4 <- + -> State: 1.4 <- + p.state = setFalse + -> Input: 1.5 <- + _process_selector_ = q + q.running = TRUE + p.running = FALSE + -> State: 1.5 <- + q.state = setTrue + -> Input: 1.6 <- + -> State: 1.6 <- + wantQ = TRUE + q.state = resetFalse + -> Input: 1.7 <- + _process_selector_ = p + q.running = FALSE + p.running = TRUE + -> State: 1.7 <- + wantP = FALSE + p.state = local + -> Input: 1.8 <- + -> State: 1.8 <- + p.state = setTrue + -> Input: 1.9 <- + -- Loop starts here + -> State: 1.9 <- + wantP = TRUE + p.state = resetFalse + -> Input: 1.10 <- + _process_selector_ = q + q.running = TRUE + p.running = FALSE + -> State: 1.10 <- + wantQ = FALSE + q.state = resetTrue + -> Input: 1.11 <- + -- Loop starts here + -> State: 1.11 <- + wantQ = TRUE + q.state = resetFalse + -> Input: 1.12 <- + _process_selector_ = p + q.running = FALSE + p.running = TRUE + -> State: 1.12 <- + wantP = FALSE + p.state = resetTrue + -> Input: 1.13 <- + -- Loop starts here + -> State: 1.13 <- + wantP = TRUE + p.state = resetFalse + -> Input: 1.14 <- + _process_selector_ = q + q.running = TRUE + p.running = FALSE + -> State: 1.14 <- + wantQ = FALSE + q.state = resetTrue + -> Input: 1.15 <- + -- Loop starts here + -> State: 1.15 <- + wantQ = TRUE + q.state = resetFalse + -> Input: 1.16 <- + _process_selector_ = p + q.running = FALSE + p.running = TRUE + -> State: 1.16 <- + wantP = FALSE + p.state = resetTrue + -> Input: 1.17 <- + -> State: 1.17 <- + wantP = TRUE + p.state = resetFalse +#+END_SRC +Di seguito il trace che conferma la presenza di starvation +individuale, sia in GreatSPN che NuSMV. +#+BEGIN_SRC +Generated counter-example: +==================================== Trace ==================================== +Initial state is: local_Q(1), wantQ_FALSE(1), wantP_FALSE(1), local_P(1) +Initial state satisfies: E F (not ((not (setTrue_Q = 1)) or (not E G (not (critical_Q = 1))))). + +1: local_Q(1), wantQ_FALSE(1), wantP_FALSE(1), local_P(1) + State 1. satisfies: ((not (setTrue_Q = 1)) or (not E G (not (critical_Q = 1)))). + + 1.1: local_Q(1), wantQ_FALSE(1), wantP_FALSE(1), local_P(1) + State 1.1. does not satisfy: (setTrue_Q = 1). + +2: setTrue_Q(1), wantQ_FALSE(1), wantP_FALSE(1), local_P(1) + State 2. does not satisfy: ((not (setTrue_Q = 1)) or (not E G (not (critical_Q = 1)))). + + 2.1: setTrue_Q(1), wantQ_FALSE(1), wantP_FALSE(1), local_P(1) + State 2.1.L. satisfies: (setTrue_Q = 1). + + State 2.1.R. satisfies: E G (not (critical_Q = 1)). Start of loop. + + 2.1.R.1: setTrue_Q(1), wantQ_FALSE(1), wantP_FALSE(1), local_P(1) + State 2.1.R.1. does not satisfy: (critical_Q = 1). + + 2.1.R.2: loop back to state 2.1.R.1. +#+END_SRC +#+BEGIN_SRC +-- specification AG (q.state = setTrue -> AF q.state = critical) is false +-- as demonstrated by the following execution sequence +Trace Description: CTL Counterexample +Trace Type: Counterexample + -> State: 3.1 <- + wantP = FALSE + wantQ = FALSE + p.state = local + q.state = local + -> Input: 3.2 <- + _process_selector_ = q + running = FALSE + q.running = TRUE + p.running = FALSE + -> State: 3.2 <- + q.state = setTrue + -> Input: 3.3 <- + _process_selector_ = p + q.running = FALSE + p.running = TRUE + -> State: 3.3 <- + p.state = setTrue + -> Input: 3.4 <- + -> State: 3.4 <- + wantP = TRUE + p.state = critical + -> Input: 3.5 <- + _process_selector_ = q + q.running = TRUE + p.running = FALSE + -> State: 3.5 <- + wantQ = TRUE + q.state = resetFalse + -> Input: 3.6 <- + _process_selector_ = p + q.running = FALSE + p.running = TRUE + -- Loop starts here + -> State: 3.6 <- + p.state = setFalse + -> Input: 3.7 <- + _process_selector_ = main + running = TRUE + p.running = FALSE + -- Loop starts here + -> State: 3.7 <- + -> Input: 3.8 <- + _process_selector_ = q + running = FALSE + q.running = TRUE + -> State: 3.8 <- + wantQ = FALSE + q.state = resetTrue + -> Input: 3.9 <- + _process_selector_ = p + q.running = FALSE + p.running = TRUE + -> State: 3.9 <- + wantP = FALSE + p.state = local + -> Input: 3.10 <- + -> State: 3.10 <- + p.state = setTrue + -> Input: 3.11 <- + -> State: 3.11 <- + wantP = TRUE + p.state = critical + -> Input: 3.12 <- + _process_selector_ = q + q.running = TRUE + p.running = FALSE + -> State: 3.12 <- + wantQ = TRUE + q.state = resetFalse + -> Input: 3.13 <- + _process_selector_ = p + q.running = FALSE + p.running = TRUE + -> State: 3.13 <- + p.state = setFalse +#+END_SRC