210 research outputs found
ΠΠ° ΠΏΡΡΠΈ ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄Π΅Π΄ΡΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ C-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Sisal-ΡΠΈΠΊΠ»Π°ΠΌΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ C-lightVer
The C-lightVer system is developed in IIS SB RAS for C-program deductive verification. C-kernel is an intermediate verification language in this system. Cloud parallel programming system (CPPS) is also developed in IIS SB RAS. Cloud Sisal is an input language of CPPS. The main feature of CPPS is implicit parallel execution based on automatic parallelization of Cloud Sisal loops. Cloud-Sisal-kernel is an intermediate verification language in the CPPS system. Our goal is automatic parallelization of such a superset of C that allows implementing automatic verification. Our solution is such a superset of C-kernel as C-Sisal-kernel. The first result presented in this paper is an extension of C-kernel by Cloud-Sisal-kernel loops. We have obtained the C-Sisal-kernel language. The second result is an extension of C-kernel axiomatic semantics by inference rule for Cloud-Sisal-kernel loops. The paper also presents our approach to the problem of deductive verification automation in the case of finite iterations over data structures. This kind of loops is referred to as definite iterations. Our solution is a composition of symbolic method of verification of definite iterations, verification condition metageneration and mixed axiomatic semantics method. Symbolic method of verification of definite iterations allows defining inference rules for these loops without invariants. Symbolic replacement of definite iterations by recursive functions is the base of this method. Obtained verification conditions with applications of recursive functions correspond to logical base of ACL2 prover. We use ACL2 system based on computable recursive functions. Verification condition metageneration allows simplifying implementation of new inference rules in a verification system. The use of mixed axiomatic semantics results to simpler verification conditions in some cases.Π ΠΠ½ΡΡΠΈΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ Π‘Π Π ΠΠ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° C-lightVer Π΄Π»Ρ Π΄Π΅Π΄ΡΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ C-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. C-kernel ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (CPPS) ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΠ½ΡΡΠΈΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ Π‘Π Π ΠΠ. Cloud Sisal ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Ρ
ΠΎΠ΄Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ CPPS. ΠΠ»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ CPPS ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ²Π°Π½ΠΈΠΈ ΡΠΈΠΊΠ»ΠΎΠ² Cloud Sisal. Cloud-Sisal-kernel ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ CPPS. ΠΠ°ΡΠ΅ΠΉ ΡΠ΅Π»ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ·ΡΠΊΠ° C, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ. ΠΠ°ΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠ° C-kernel, ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ C-Sisal-kernel. ΠΠ΅ΡΠ²ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° C-kernel ΡΠΈΠΊΠ»Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ° Cloud-Sisal-kernel. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΡΠ·ΡΠΊ C-Sisal-kernel. ΠΡΠΎΡΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΡΠ·ΡΠΊΠ° C-kernel ΠΏΡΠ°Π²ΠΈΠ»ΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ ΡΠΈΠΊΠ»ΠΎΠ² ΡΠ·ΡΠΊΠ° Cloud-Sisal-kernel. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π°Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅Π΄ΡΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΈΠ½ΠΈΡΠ½ΡΡ
ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
. Π’Π°ΠΊΠΈΠ΅ ΡΠΈΠΊΠ»Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΈΠ½ΠΈΡΠ½ΡΠΌΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ. ΠΠ°ΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΈΠ½ΠΈΡΠ½ΡΡ
ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ, ΠΌΠ΅ΡΠ°Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΌΠ΅ΡΠ°Π½Π½ΠΎΠΉ Π°ΠΊΡΠΈΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ. Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΈΠ½ΠΈΡΠ½ΡΡ
ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ
ΡΠΈΠΊΠ»ΠΎΠ² Π±Π΅Π· ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ². Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°ΠΌΠ΅Π½Π° ΡΠΈΠ½ΠΈΡΠ½ΡΡ
ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²Π° ACL2. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ACL2, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π²ΡΡΠΈΡΠ»ΠΈΠΌΡΡ
ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΡΡ
. ΠΠ΅ΡΠ°Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½ΠΎΠ²ΡΡ
ΠΏΡΠ°Π²ΠΈΠ» Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΠ°Π½Π½ΠΎΠΉ Π°ΠΊΡΠΈΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΡ C-lightVer ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π² C-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ
The C-lightVer system for the deductive verification of C programs is being developed at the IIS SB RAS. Based on the two-level architecture of the system, the C-light input language is translated into the intermediate C-kernel language. The meta generator of the correctness conditions receives the C-kernel program and Hoare logic for the C-kernel as input. To solve the well-known problem of determining loop invariants, the definite iteration approach was chosen. The body of the definite iteration loop is executed once for each element of the finite dimensional data structure, and the inference rule for them uses the substitution operation rep, which represents the action of the cycle in symbolic form. Also, in our meta generator, the method of semantic markup of correctness conditions has been implemented and expanded. It allows to generate explanations for unproven conditions and simplifies the errors localization. Finally, if the theorem prover fails to determine the truth of the condition, we can focus on proving its falsity. Thus a method of proving the falsity of the correctness conditions in the ACL2 system was developed. The need for more detailed explanations of the correctness conditions containing the replacement operation rep has led to a change of the algorithms for generating the replacement operation, and the generation of explanations for unproven correctness conditions. Modifications of these algorithms are presented in the article. They allow marking rep definition with semantic labels, extracting semantic labels from rep definition and generating description of break execution condition.Π ΠΠ‘Π Π‘Π Π ΠΠ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° C-lightVer Π΄Π»Ρ Π΄Π΅Π΄ΡΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π‘-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΡ
ΠΎΠ΄Ρ ΠΈΠ· Π΄Π²ΡΡ
ΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ·ΡΠΊ C-light ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ C-kernel. ΠΠ΅ΡΠ°Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ
ΠΎΠ΄ C-kernel ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π»ΠΎΠ³ΠΈΠΊΡ Π₯ΠΎΠ°ΡΠ° Π΄Π»Ρ C-kernel. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠΈΠΊΠ»ΠΎΠ² Π²ΡΠ±ΡΠ°Π½ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠΈΠ½ΠΈΡΠ½ΡΡ
ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ. Π’Π΅Π»ΠΎ ΡΠΈΠΊΠ»Π° ΡΠΈΠ½ΠΈΡΠ½ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ, Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ Π½ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°ΠΌΠ΅Π½Ρ rep, Π²ΡΡΠ°ΠΆΠ°ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠΈΠΊΠ»Π° Π² ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΌΠ΅. Π’Π°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ ΠΌΠ΅ΡΠ°Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ΅ Π²Π½Π΅Π΄ΡΠ΅Π½ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ Π΄Π»Ρ Π½Π΅Π΄ΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ACL2 Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²Π΅ Π΅Π³ΠΎ Π»ΠΎΠΆΠ½ΠΎΡΡΠΈ. Π Π°Π½Π΅Π΅ Π½Π°ΠΌΠΈ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²Π° Π»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ACL2. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ
ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°ΠΌΠ΅Π½Ρ rep, ΠΏΡΠΈΠ²Π΅Π»Π° ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΌΠ΅Π½Ρ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΌΠ΅ΡΠΎΠΊ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠΉ Π½Π΅Π΄ΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ. Π ΡΡΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ². ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ rep ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΊΠΈ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ rep, Π° ΡΠ°ΠΊΠΆΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ break
Algebraic Stream Processing
We identify and analyse the typically higher-order approaches to stream processing in the literature. From this analysis we motivate an alternative approach to the specification of SPSs as STs based on an essentially first-order equational representation. This technique is called Cartesian form specification. More specifically, while STs are properly second-order objects we show that using Cartesian forms, the second-order models needed to formalise STs are so weak that we may use and develop well-understood first-order methods from computability theory and mathematical logic to reason about their properties. Indeed, we show that by specifying STs equationally in Cartesian form as primitive recursive functions we have the basis of a new, general purpose and mathematically sound theory of stream processing that emphasises the formal specification and formal verification of STs. The main topics that we address in the development of this theory are as follows. We present a theoretically well-founded general purpose stream processing language ASTRAL (Algebraic Stream TRAnsformer Language) that supports the use of modular specification techniques for full second-order STs. We show how ASTRAL specifications can be given a Cartesian form semantics using the language PREQ that is an equational characterisation of the primitive recursive functions. In more detail, we show that by compiling ASTRAL specifications into an equivalent Cartesian form in PREQ we can use first-order equational logic with induction as a logical calculus to reason about STs. In particular, using this calculus we identify a syntactic class of correctness statements for which the verification of ASTRAL programmes is decidable relative to this calculus. We define an effective algorithm based on term re-writing techniques to implement this calculus and hence to automatically verify a very broad class of STs including conventional hardware devices. Finally, we analyse the properties of this abstract algorithm as a proof assistant and discuss various techniques that have been adopted to develop software tools based on this algorithm
Fiber-Reinforced Plastics
This book deepens the study and knowledge on fiber-reinforced plastics (FRPs), which are composite materials made of a polymer matrix reinforced with fibers. The fibers are usually glass, carbon, or aramid, although other fibers such as paper, wood, or asbestos are sometimes used. The polymer is usually an epoxy, vinyl ester, or polyester thermosetting plastic, and phenol-formaldehyde resins are still in use. Among, the most prominent applications of FRPs are in the aerospace, automotive, marine, and construction industries. The development of FRPs has a very promising future with a marked annual increase and with a wide range of sources. This book presents comprehensive information on FRPs and their wide variety of applications in the industry worldwide
Use of proofs-as-programs to build an anology-based functional program editor
This thesis presents a novel application of the technique known as proofs-as-programs.
Proofs-as-programs defines a correspondence between proofs in a constructive logic
and functional programs. By using this correspondence, a functional program may be
represented directly as the proof of a specification and so the program may be analysed within this proof framework. CΚΈNTHIA is a program editor for the functional
language ML which uses proofs-as-programs to analyse users' programs as they are
written. So that the user requires no knowledge of proof theory, the underlying proof
representation is completely hidden.
The proof framework allows programs written in CΚΈNTHIA to be checked to be
syntactically correct, well-typed, well-defined and terminating.
CΚΈNTHIA also embodies the idea of programming by analogy β rather than starting
from scratch, users always begin with an existing function definition. They then apply
a sequence of high-level editing commands which transform this starting definition into
the one required. These commands preserve correctness and also increase programming
efficiency by automating commonly occurring steps.
The design and implementation of CΚΈNTHIA is described and its role as a novice
programming environment is investigated. Use by experts is possible but only a sub-set of ML is currently supported. Two major trials of CΚΈNTHIA have shown that
CΚΈNTHIA is well-suited as a teaching tool. Users of CΚΈNTHIA make fewer programming errors and the feedback facilities of CΚΈNTHIA mean that it is easier to
track down the source of errors when they do occur
Aerospace medicine and biology: A continuing bibliography with indexes (supplement 407)
This bibliography lists 289 reports, articles and other documents announced in the NASA Scientific and Technical Information System during Nov. 1995. Subject coverage includes: aerospace medicine and physiology, life support systems and man/system technology, protective clothing, exobiology and extraterrestrial life, planetary biology, and flight crew behavior and performance
First Annual Workshop on Space Operations Automation and Robotics (SOAR 87)
Several topics relative to automation and robotics technology are discussed. Automation of checkout, ground support, and logistics; automated software development; man-machine interfaces; neural networks; systems engineering and distributed/parallel processing architectures; and artificial intelligence/expert systems are among the topics covered
- β¦