Combining Type Checking and Set Constraint Solving to Improve Automated Software Verification
This technical note shows how we have combined prescriptive type checking and constraint solving to increase automation during software verification. We do so by defining a type system and implementing a typechecker for $\{log\}$ (read ‘setlog’), a Constraint Logic Programming language and satisfiab...
Gespeichert in:
| Veröffentlicht in: | Theory and practice of logic programming Jg. 24; H. 5; S. 1011 - 1030 |
|---|---|
| Hauptverfasser: | , |
| Format: | Journal Article |
| Sprache: | Englisch |
| Veröffentlicht: |
01.09.2024
|
| ISSN: | 1471-0684, 1475-3081 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Abstract | This technical note shows how we have combined prescriptive type checking and constraint solving to increase automation during software verification. We do so by defining a type system and implementing a typechecker for
$\{log\}$
(read ‘setlog’), a Constraint Logic Programming language and satisfiability solver based on set theory. The constraint solver is proved to be safe w.r.t. the type system. Two industrial-strength case studies are presented where this combination is used with very good results. |
|---|---|
| AbstractList | This technical note shows how we have combined prescriptive type checking and constraint solving to increase automation during software verification. We do so by defining a type system and implementing a typechecker for
$\{log\}$
(read ‘setlog’), a Constraint Logic Programming language and satisfiability solver based on set theory. The constraint solver is proved to be safe w.r.t. the type system. Two industrial-strength case studies are presented where this combination is used with very good results. |
| Author | CRISTIÁ, MAXIMILIANO ROSSI, GIANFRANCO |
| Author_xml | – sequence: 1 givenname: MAXIMILIANO orcidid: 0000-0001-9163-2609 surname: CRISTIÁ fullname: CRISTIÁ, MAXIMILIANO – sequence: 2 givenname: GIANFRANCO surname: ROSSI fullname: ROSSI, GIANFRANCO |
| BookMark | eNplkM1OwzAQhC1UJNrCA3DzCwR2YyeOj1XET6VKHFq4ochObDA0duWYor59G-DGaXbmW61WMyMTH7wh5BrhBgHF7Rq5QCgrnnMAyKE8I9NTVGQMKpz8zJiN_ILMhuEDAEuW8yl5rUOvnXf-jW4OO0Prd9N-jk75jq5NonXwQ4rK-UTXYbsfUQp02e9i2Bu6-EqhV8mcdoNN3yoa-mKis65VyQV_Sc6t2g7m6k_n5Pn-blM_Zqunh2W9WGXt6d2UGRBS81ZopaDjBqUsuZaqYEXLCyGVrEqr806ySgroTF4KnVuLrOsUWo2czQn-3m1jGIZobLOLrlfx0CA0Yz_Nv37YEa3QWuc |
| Cites_doi | 10.19153/cleiej.21.2.3 10.1007/s10009-010-0145-y 10.1007/s10817-023-09666-2 10.1145/319301.319317 10.1017/CBO9780511624162 10.1007/978-3-319-07512-9_6 10.1007/978-3-540-89982-2_59 10.1145/1328408.1328418 10.1109/LICS.1991.151654 10.1017/CBO9781316576892 10.1007/978-3-030-98869-2_2 10.1007/s10817-019-09520-4 10.1145/365151.365169 10.7561/SACS.2016.1.27 10.1017/S1471068406002730 10.1016/0022-0000(78)90014-4 10.1017/S1471068401001120 10.1007/s10009-015-0391-0 10.1006/inco.1994.1093 10.1007/s10817-021-09589-w 10.1007/978-3-319-25150-9_28 10.1145/96709.96729 10.1016/S0743-1066(96)00068-4 10.1017/CBO9781139195881 10.1145/3625230 10.1016/j.scico.2005.02.006 10.1016/0004-3702(84)90017-1 10.1017/S1471068402001473 10.1017/S1471068421000521 10.4204/EPTCS.320.0 10.1007/978-3-030-02149-8_20 10.1007/s10817-020-09577-6 10.1007/BFb0032738 10.1007/978-3-319-07512-9_1 10.1017/CBO9781139032636 10.1007/978-3-540-75560-9_13 10.1007/s10817-021-09602-2 |
| ContentType | Journal Article |
| DBID | AAYXX CITATION |
| DOI | 10.1017/S1471068424000206 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1475-3081 |
| EndPage | 1030 |
| ExternalDocumentID | 10_1017_S1471068424000206 |
| GroupedDBID | -E. .FH 09C 09E 0E1 0R~ 123 29Q 4.4 5VS 74X 74Y 7~V 8FE 8FG 8R4 8R5 AAAZR AABES AABWE AACJH AAFUK AAGFV AAKTX AANRG AARAB AASVR AAUKB AAYXX ABBXD ABGDZ ABITZ ABJNI ABKKG ABMWE ABQTM ABQWD ABROB ABTCQ ABUWG ABVKB ABVZP ABXHF ABZCX ACAJB ACBMC ACDLN ACGFS ACIMK ACNCT ACUIJ ACYZP ACZBM ACZUX ACZWT ADCGK ADDNB ADFEC ADKIL ADOVH ADVJH AEBAK AEHGV AEMTW AENEX AENGE AFFHD AFFUJ AFKQG AFKRA AFLOS AFLVW AFUTZ AFZFC AGABE AGBYD AGJUD AHQXX AHRGI AIGNW AIHIV AIOIP AISIE AJ7 AJCYY AJPFC AJQAS AKMAY ALMA_UNASSIGNED_HOLDINGS ALVPG ALWZO AQJOH ARABE ARAPS ATUCA AUXHV AZQEC BBLKV BENPR BGHMG BGLVJ BLZWO BMAJL BPHCQ C0O CAG CBIIA CCPQU CCQAD CCTKK CFAFE CHEAL CITATION CJCSC COF CS3 DC4 DOHLZ DU5 DWQXO EBS EJD GNUQQ HCIFZ HG- HST HZ~ I.6 IH6 IOEEP IPYYG IS6 I~P J36 J38 J3A J9A JHPGK JQKCU K6V K7- KCGVB KFECR L98 LW7 M-V NIKVX O9- OYBOY P2P P62 PHGZM PHGZT PQGLB PQQKQ PROAC PYCCK Q2X RAMDC RCA ROL RR0 S6- S6U SAAAG T9M UT1 WFFJZ WQ3 WXU WYP ZYDXJ |
| ID | FETCH-LOGICAL-c240t-e079b4c7baa0d4e19964b9a535c4579a986fb2d938970de267b2ff13dda1fb143 |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001346247300001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 1471-0684 |
| IngestDate | Sat Nov 29 04:58:38 EST 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 5 |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c240t-e079b4c7baa0d4e19964b9a535c4579a986fb2d938970de267b2ff13dda1fb143 |
| ORCID | 0000-0001-9163-2609 |
| OpenAccessLink | https://www.cambridge.org/core/services/aop-cambridge-core/content/view/4DF92EF01D1027D804695967BE02833E/S1471068424000206a.pdf/div-class-title-combining-type-checking-and-set-constraint-solving-to-improve-automated-software-verification-div.pdf |
| PageCount | 20 |
| ParticipantIDs | crossref_primary_10_1017_S1471068424000206 |
| PublicationCentury | 2000 |
| PublicationDate | 2024-09-01 |
| PublicationDateYYYYMMDD | 2024-09-01 |
| PublicationDate_xml | – month: 09 year: 2024 text: 2024-09-01 day: 01 |
| PublicationDecade | 2020 |
| PublicationTitle | Theory and practice of logic programming |
| PublicationYear | 2024 |
| References | Cristiá (S1471068424000206_ref22) 2024; 14070 S1471068424000206_ref21 S1471068424000206_ref20 Mentré (S1471068424000206_ref47) 2012; 7316 S1471068424000206_ref60 S1471068424000206_ref7 S1471068424000206_ref29 S1471068424000206_ref28 S1471068424000206_ref6 S1471068424000206_ref27 S1471068424000206_ref5 S1471068424000206_ref4 S1471068424000206_ref26 S1471068424000206_ref3 S1471068424000206_ref2 S1471068424000206_ref23 Cristiá (S1471068424000206_ref24) 2013; 8137 S1471068424000206_ref9 Hill (S1471068424000206_ref38) 1994 S1471068424000206_ref8 Pierce (S1471068424000206_ref50) 2002 S1471068424000206_ref10 S1471068424000206_ref54 S1471068424000206_ref53 S1471068424000206_ref52 S1471068424000206_ref51 S1471068424000206_ref18 S1471068424000206_ref17 S1471068424000206_ref16 Yardeni (S1471068424000206_ref59) 1992 S1471068424000206_ref15 S1471068424000206_ref58 S1471068424000206_ref14 S1471068424000206_ref13 S1471068424000206_ref57 S1471068424000206_ref12 S1471068424000206_ref56 S1471068424000206_ref11 Spivey (S1471068424000206_ref55) 1992 Martin-Löf (S1471068424000206_ref46) 1984; 1 S1471068424000206_ref19 Pfenning (S1471068424000206_ref1) 1992 Hanus (S1471068424000206_ref33) 2013; 7797 S1471068424000206_ref43 Leuschel (S1471068424000206_ref42) 2003; 2805 S1471068424000206_ref41 S1471068424000206_ref40 S1471068424000206_ref49 S1471068424000206_ref48 S1471068424000206_ref45 Dart (S1471068424000206_ref25) 1992 S1471068424000206_ref44 S1471068424000206_ref32 S1471068424000206_ref31 S1471068424000206_ref30 S1471068424000206_ref39 S1471068424000206_ref37 S1471068424000206_ref35 S1471068424000206_ref34 Heintze (S1471068424000206_ref36) 1992 |
| References_xml | – ident: S1471068424000206_ref52 – volume: 1 year: 1984 ident: S1471068424000206_ref46 article-title: Intuitionistic type theory publication-title: Studies in Proof Theory – ident: S1471068424000206_ref43 doi: 10.19153/cleiej.21.2.3 – ident: S1471068424000206_ref2 doi: 10.1007/s10009-010-0145-y – ident: S1471068424000206_ref13 doi: 10.1007/s10817-023-09666-2 – ident: S1471068424000206_ref40 doi: 10.1145/319301.319317 – ident: S1471068424000206_ref3 doi: 10.1017/CBO9780511624162 – ident: S1471068424000206_ref45 doi: 10.1007/978-3-319-07512-9_6 – ident: S1471068424000206_ref53 doi: 10.1007/978-3-540-89982-2_59 – ident: S1471068424000206_ref51 doi: 10.1145/1328408.1328418 – ident: S1471068424000206_ref31 doi: 10.1109/LICS.1991.151654 – start-page: 63 volume-title: Types in Logic Programming year: 1992 ident: S1471068424000206_ref59 – ident: S1471068424000206_ref34 doi: 10.1017/CBO9781316576892 – volume-title: The Gödel Programming Language year: 1994 ident: S1471068424000206_ref38 – start-page: 157 volume-title: Types in Logic Programming year: 1992 ident: S1471068424000206_ref25 – ident: S1471068424000206_ref5 doi: 10.1007/978-3-030-98869-2_2 – ident: S1471068424000206_ref20 – ident: S1471068424000206_ref16 doi: 10.1007/s10817-019-09520-4 – volume-title: The Z Notation: A Reference Manual year: 1992 ident: S1471068424000206_ref55 – ident: S1471068424000206_ref27 doi: 10.1145/365151.365169 – ident: S1471068424000206_ref8 doi: 10.7561/SACS.2016.1.27 – volume: 2805 start-page: 855 volume-title: ProB: a model checker for B year: 2003 ident: S1471068424000206_ref42 – ident: S1471068424000206_ref28 doi: 10.1017/S1471068406002730 – ident: S1471068424000206_ref48 doi: 10.1016/0022-0000(78)90014-4 – ident: S1471068424000206_ref30 doi: 10.1017/S1471068401001120 – ident: S1471068424000206_ref44 doi: 10.1007/s10009-015-0391-0 – volume-title: Types and Programming Languages year: 2002 ident: S1471068424000206_ref50 – ident: S1471068424000206_ref58 doi: 10.1006/inco.1994.1093 – ident: S1471068424000206_ref18 doi: 10.1007/s10817-021-09589-w – volume: 7316 start-page: 238 volume-title: Discharging proof obligations from atelier B using multiple automated provers year: 2012 ident: S1471068424000206_ref47 – ident: S1471068424000206_ref7 doi: 10.1007/978-3-319-25150-9_28 – ident: S1471068424000206_ref60 – ident: S1471068424000206_ref35 doi: 10.1145/96709.96729 – ident: S1471068424000206_ref54 doi: 10.1016/S0743-1066(96)00068-4 – ident: S1471068424000206_ref4 doi: 10.1017/CBO9781139195881 – ident: S1471068424000206_ref23 doi: 10.1145/3625230 – volume: 14070 start-page: 56 volume-title: From Computational Logic to Computational Biology - Essays Dedicated to Alfredo Ferro to Celebrate His Scientific Career year: 2024 ident: S1471068424000206_ref22 – ident: S1471068424000206_ref12 – volume-title: Types in logic programming year: 1992 ident: S1471068424000206_ref1 – ident: S1471068424000206_ref37 doi: 10.1016/j.scico.2005.02.006 – ident: S1471068424000206_ref49 doi: 10.1016/0004-3702(84)90017-1 – ident: S1471068424000206_ref29 doi: 10.1017/S1471068402001473 – ident: S1471068424000206_ref26 – volume: 8137 start-page: 229 volume-title: {log} as a test case generator for the test template framework year: 2013 ident: S1471068424000206_ref24 – ident: S1471068424000206_ref21 doi: 10.1017/S1471068421000521 – ident: S1471068424000206_ref41 doi: 10.4204/EPTCS.320.0 – ident: S1471068424000206_ref32 – start-page: 141 volume-title: Types in Logic Programming year: 1992 ident: S1471068424000206_ref36 – ident: S1471068424000206_ref14 doi: 10.1007/978-3-030-02149-8_20 – volume: 7797 start-page: 123 volume-title: Programming Logics - Essays in Memory of Harald Ganzinger year: 2013 ident: S1471068424000206_ref33 – ident: S1471068424000206_ref39 – ident: S1471068424000206_ref57 – ident: S1471068424000206_ref17 doi: 10.1007/s10817-020-09577-6 – ident: S1471068424000206_ref56 doi: 10.1007/BFb0032738 – ident: S1471068424000206_ref10 doi: 10.1007/978-3-319-07512-9_1 – ident: S1471068424000206_ref15 – ident: S1471068424000206_ref11 – ident: S1471068424000206_ref6 doi: 10.1017/CBO9781139032636 – ident: S1471068424000206_ref9 doi: 10.1007/978-3-540-75560-9_13 – ident: S1471068424000206_ref19 doi: 10.1007/s10817-021-09602-2 |
| SSID | ssj0016324 |
| Score | 2.3393378 |
| Snippet | This technical note shows how we have combined prescriptive type checking and constraint solving to increase automation during software verification. We do so... |
| SourceID | crossref |
| SourceType | Index Database |
| StartPage | 1011 |
| Title | Combining Type Checking and Set Constraint Solving to Improve Automated Software Verification |
| Volume | 24 |
| WOSCitedRecordID | wos001346247300001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVPQU databaseName: Computer Science Database customDbUrl: eissn: 1475-3081 dateEnd: 20241207 omitProxy: false ssIdentifier: ssj0016324 issn: 1471-0684 databaseCode: K7- dateStart: 20010101 isFulltext: true titleUrlDefault: http://search.proquest.com/compscijour providerName: ProQuest – providerCode: PRVPQU databaseName: ProQuest advanced technologies & aerospace journals customDbUrl: eissn: 1475-3081 dateEnd: 20241207 omitProxy: false ssIdentifier: ssj0016324 issn: 1471-0684 databaseCode: P5Z dateStart: 20010101 isFulltext: true titleUrlDefault: https://search.proquest.com/hightechjournals providerName: ProQuest – providerCode: PRVPQU databaseName: ProQuest Central customDbUrl: eissn: 1475-3081 dateEnd: 20241207 omitProxy: false ssIdentifier: ssj0016324 issn: 1471-0684 databaseCode: BENPR dateStart: 20010101 isFulltext: true titleUrlDefault: https://www.proquest.com/central providerName: ProQuest |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1ba9swFBZZu4e9bN26sWvRw54WDI4tWdZjKBsLlKQ0WQmFEiRLZmOdUzq36x_Z_905urimF2gf9mISEWQn58t3js6VkI9VXRaprEyC-jRhXJtEGo5vC-bcyVYpN2xCTKflcin3B4O_sRbm4kQ0TXl5KU__q6hhDYSNpbMPEHe3KSzAaxA6XEHscL2X4OEfrt3UhyGeMYe73231M1Yizm3rRnS6wRDtcL4-cf4EsD-9c8EOx-ftGoxYNEOBoP9gXtghPHUdXHt9W9aX9YdOA77WCk1PR6Yx7-tX1IwY5jiYzBcTjMyXI-eHHS-BOfcm4-msC_vMgNydqx5WXRLhrO-WyFiXdxWZFLQeTrTx3gIb13iSp35GS6RfX0IdYMZ7XApkMerpZZyHdivnh0ZReEO8HybFgg18S3_ta3qvy0b0iW5idWOLR2QzE1wiWe7zoy44hR3uXdFa-IYxWI6dyK9v0TN3enbLYos8DQcOOvZAeU4GtnlBnsVhHjRw-zY57nBDETc04oaCfCnghl7hhgbc0HZNA25ohxsacUP7uHlJvn35vNj9moTZG0kFj94mNhVSs0popVLDLOaqMy0Vz3nFuJBKlkWtMyPB3hWpsVkhdFbXo9wYNao1GOGvyEazbuxrQnOTmrw0hUplympmtdTCGAEHfVMqU5dvyKf4E61OfYuV1Z0iefuQD78jT66g-Z5stGfn9gN5XF20P36f7Tih_gNrSW2- |
| linkProvider | ProQuest |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Combining+Type+Checking+and+Set+Constraint+Solving+to+Improve+Automated+Software+Verification&rft.jtitle=Theory+and+practice+of+logic+programming&rft.au=CRISTI%C3%81%2C+MAXIMILIANO&rft.au=ROSSI%2C+GIANFRANCO&rft.date=2024-09-01&rft.issn=1471-0684&rft.eissn=1475-3081&rft.volume=24&rft.issue=5&rft.spage=1011&rft.epage=1030&rft_id=info:doi/10.1017%2FS1471068424000206&rft.externalDBID=n%2Fa&rft.externalDocID=10_1017_S1471068424000206 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1471-0684&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1471-0684&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1471-0684&client=summon |