Academic Journal
Combining rule- and SMT-based reasoning for verifying floating-point Java programs in KeY
| Τίτλος: | Combining rule- and SMT-based reasoning for verifying floating-point Java programs in KeY |
|---|---|
| Συγγραφείς: | Abbasi, Rosa, Schiffl, Jonas, Darulova, Eva, Ulbrich, M., Ahrendt, Wolfgang, 1967 |
| Πηγή: | International Journal on Software Tools for Technology Transfer Benchmark Repository for Floating-Point Support in KeY. 25(2):185-204 |
| Θεματικοί όροι: | Deductive verification, Floating-point arithmetic, Transcendental functions |
| Περιγραφή: | Deductive verification has been successful in verifying interesting properties of real-world programs. One notable gap is the limited support for floating-point reasoning. This is unfortunate, as floating-point arithmetic is particularly unintuitive to reason about due to rounding as well as the presence of the special values infinity and ‘Not a Number’ (NaN). In this article, we present the first floating-point support in a deductive verification tool for the Java programming language. Our support in the KeY verifier handles floating-point arithmetics, transcendental functions, and potentially rounding-type casts. We achieve this with a combination of delegation to external SMT solvers on the one hand, and KeY-internal, rule-based reasoning on the other hand, exploiting the complementary strengths of both worlds. We evaluate this integration on new benchmarks and show that this approach is powerful enough to prove the absence of floating-point special values—often a prerequisite for correct programs—as well as functional properties, for realistic benchmarks. |
| Περιγραφή αρχείου: | electronic |
| Σύνδεσμος πρόσβασης: | https://research.chalmers.se/publication/534936 https://research.chalmers.se/publication/534936/file/534936_Fulltext.pdf |
| Βάση Δεδομένων: | SwePub |
| FullText | Text: Availability: 0 CustomLinks: – Url: https://research.chalmers.se/publication/534936# Name: EDS - SwePub (ns324271) Category: fullText Text: View record in SwePub |
|---|---|
| Header | DbId: edsswe DbLabel: SwePub An: edsswe.oai.research.chalmers.se.74098cd6.3c3b.41d7.b177.9762ba07d515 RelevancyScore: 1034 AccessLevel: 6 PubType: Academic Journal PubTypeId: academicJournal PreciseRelevancyScore: 1033.77954101563 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: Combining rule- and SMT-based reasoning for verifying floating-point Java programs in KeY – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Abbasi%2C+Rosa%22">Abbasi, Rosa</searchLink><br /><searchLink fieldCode="AR" term="%22Schiffl%2C+Jonas%22">Schiffl, Jonas</searchLink><br /><searchLink fieldCode="AR" term="%22Darulova%2C+Eva%22">Darulova, Eva</searchLink><br /><searchLink fieldCode="AR" term="%22Ulbrich%2C+M%2E%22">Ulbrich, M.</searchLink><br /><searchLink fieldCode="AR" term="%22Ahrendt%2C+Wolfgang%22">Ahrendt, Wolfgang</searchLink>, 1967 – Name: TitleSource Label: Source Group: Src Data: <i>International Journal on Software Tools for Technology Transfer Benchmark Repository for Floating-Point Support in KeY</i>. 25(2):185-204 – Name: Subject Label: Subject Terms Group: Su Data: <searchLink fieldCode="DE" term="%22Deductive+verification%22">Deductive verification</searchLink><br /><searchLink fieldCode="DE" term="%22Floating-point+arithmetic%22">Floating-point arithmetic</searchLink><br /><searchLink fieldCode="DE" term="%22Transcendental+functions%22">Transcendental functions</searchLink> – Name: Abstract Label: Description Group: Ab Data: Deductive verification has been successful in verifying interesting properties of real-world programs. One notable gap is the limited support for floating-point reasoning. This is unfortunate, as floating-point arithmetic is particularly unintuitive to reason about due to rounding as well as the presence of the special values infinity and ‘Not a Number’ (NaN). In this article, we present the first floating-point support in a deductive verification tool for the Java programming language. Our support in the KeY verifier handles floating-point arithmetics, transcendental functions, and potentially rounding-type casts. We achieve this with a combination of delegation to external SMT solvers on the one hand, and KeY-internal, rule-based reasoning on the other hand, exploiting the complementary strengths of both worlds. We evaluate this integration on new benchmarks and show that this approach is powerful enough to prove the absence of floating-point special values—often a prerequisite for correct programs—as well as functional properties, for realistic benchmarks. – Name: Format Label: File Description Group: SrcInfo Data: electronic – Name: URL Label: Access URL Group: URL Data: <link linkTarget="URL" linkTerm="https://research.chalmers.se/publication/534936" linkWindow="_blank">https://research.chalmers.se/publication/534936</link><br /><link linkTarget="URL" linkTerm="https://research.chalmers.se/publication/534936/file/534936_Fulltext.pdf" linkWindow="_blank">https://research.chalmers.se/publication/534936/file/534936_Fulltext.pdf</link> |
| PLink | https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsswe&AN=edsswe.oai.research.chalmers.se.74098cd6.3c3b.41d7.b177.9762ba07d515 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1007/s10009-022-00691-x Languages: – Text: English PhysicalDescription: Pagination: PageCount: 20 StartPage: 185 Subjects: – SubjectFull: Deductive verification Type: general – SubjectFull: Floating-point arithmetic Type: general – SubjectFull: Transcendental functions Type: general Titles: – TitleFull: Combining rule- and SMT-based reasoning for verifying floating-point Java programs in KeY Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Abbasi, Rosa – PersonEntity: Name: NameFull: Schiffl, Jonas – PersonEntity: Name: NameFull: Darulova, Eva – PersonEntity: Name: NameFull: Ulbrich, M. – PersonEntity: Name: NameFull: Ahrendt, Wolfgang IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 01 Type: published Y: 2023 Identifiers: – Type: issn-print Value: 14332779 – Type: issn-print Value: 14332787 – Type: issn-locals Value: SWEPUB_FREE – Type: issn-locals Value: CTH_SWEPUB Numbering: – Type: volume Value: 25 – Type: issue Value: 2 Titles: – TitleFull: International Journal on Software Tools for Technology Transfer Benchmark Repository for Floating-Point Support in KeY Type: main |
| ResultId | 1 |