Aviso: para depositar documentos, por favor, inicia sesión e identifícate con tu cuenta de correo institucional de la UCM con el botón MI CUENTA UCM. No emplees la opción AUTENTICACIÓN CON CONTRASEÑA
 

Extending Liquid Types to Arrays

dc.contributor.authorMontenegro Montes, Manuel
dc.contributor.authorNieva Soto, Susana
dc.contributor.authorPeña Marí, Ricardo Vicente
dc.contributor.authorSegura Díaz, Clara María
dc.date.accessioned2023-06-17T08:25:29Z
dc.date.available2023-06-17T08:25:29Z
dc.date.issued2020-01-21
dc.description.abstractA liquid type is an ordinary Hindley-Milner type annotated with a logical predicate that states the properties satisfied by the elements of that type. Liquid types are a powerful tool for program verification, since programmers can use them to specify pre- and postconditions of their programs, while the predicates of intermediate variables and auxiliary functions are inferred automatically. Type inference is feasible in this context, since the logical predicates within liquid types are constrained to a quantifier-free logic in order to maintain decidability. In this paper we extend liquid types by allowing them to contain quantified properties on arrays, so that they can be used to infer invariants on array-related programs (for example, implementations of sorting algorithms). Although quantified logic is, in general, undecidable, we restrict properties on arrays to a decidable subset introduced by Bradley et al. We describe in detail the extended type system, the verification condition generator, and the iterative weakening algorithm for inferring invariants. After proving the correctness and completeness of these two algorithms, we apply them to find invariants on a set of algorithms involving array manipulations.
dc.description.departmentDepto. de Sistemas Informáticos y Computación
dc.description.facultyFac. de Informática
dc.description.refereedTRUE
dc.description.sponsorshipMinisterio de Economía y Competitividad (MINECO)
dc.description.sponsorshipComunidad de Madrid/FEDER
dc.description.statuspub
dc.eprint.idhttps://eprints.ucm.es/id/eprint/71766
dc.identifier.doi10.1145/3362740
dc.identifier.issn1529-3785
dc.identifier.officialurlhttps://dl.acm.org/doi/10.1145/3362740
dc.identifier.urihttps://hdl.handle.net/20.500.14352/7066
dc.issue.number2
dc.journal.titleACM Transactions on Computational Logic
dc.language.isoeng
dc.page.final41
dc.page.initial1
dc.publisherACM
dc.relation.projectIDCAVIART-2 (TIN2017-86217-R)
dc.relation.projectIDBLOQUES-CM (S2018/TCS-4339)
dc.rights.accessRightsopen access
dc.subject.keywordDependent Types
dc.subject.keywordLiquid Types
dc.subject.keywordInvariant Synthesis
dc.subject.keywordTipos dependientes
dc.subject.keywordTipos Liquid
dc.subject.keywordSíntesis de Invariantes
dc.subject.ucmLenguajes de programación
dc.subject.ucmProgramación de ordenadores (Informática)
dc.subject.ucmSoftware
dc.subject.ucmLógica simbólica y matemática (Matemáticas)
dc.subject.unesco1203.23 Lenguajes de Programación
dc.subject.unesco1203.23 Lenguajes de Programación
dc.subject.unesco3304.16 Diseño Lógico
dc.subject.unesco1102.14 Lógica Simbólica
dc.titleExtending Liquid Types to Arrays
dc.typejournal article
dc.volume.number21
dspace.entity.typePublication
relation.isAuthorOfPublicationdc391c7e-9682-4142-a1de-7d649b26bf3d
relation.isAuthorOfPublication21132b4a-0809-4135-9a71-0b771813a8e9
relation.isAuthorOfPublication5dcfab9e-e180-44e1-809b-fea65a09bd23
relation.isAuthorOfPublicationb7547876-744e-4e9b-b551-c0dfab2a2d83
relation.isAuthorOfPublication.latestForDiscoverydc391c7e-9682-4142-a1de-7d649b26bf3d

Download

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
main.pdf
Size:
826.09 KB
Format:
Adobe Portable Document Format

Collections