Synthesizing Certified Code
Synthesizing Certified Code
 
  Code certification is a lightweight approach for formally demonstrating software quality. Its basic idea is to require code producers to provide formal proofs that their code satisfies certain quality properties. These proofs serve as certificates that can be checked independently. Since code certification uses the same underlying technology as program verification, it requires detailed annotations (e.g., loop invariants) to make the proofs possible. However, manually adding annotations to the code is time-consuming and error-prone. We address this problem by combining code certification with automatic program synthesis. Given a high-level specification, our approach simultaneously generates code and all annotations required to certify the generated code. We describe a certification extension of AutoBayes, a synthesis tool for automatically generating data analysis programs. Based on built-in domain knowledge, proof annotations are added and used to generate proof obligations that are discharged by the automated theorem prover E-SETHEO. We demonstrate our approach by certifying operator- and memory-safety on a data-classification program. For this program, our approach was faster and more precise than PolySpace, a commercial static analysis tool.
  automatic program synthesis, program verification, code certification, proof-carrying code, automated theorem proving
  3-540-43928-5
  431-450
  
    
      Whalen, Michael
      
        af8ec115-183c-4b24-8348-554843e7051f
      
     
  
    
      Schumann, Johann
      
        03135c8b-0f6e-4a20-9453-6a4e2d8a1e23
      
     
  
    
      Fischer, Bernd
      
        0c9575e6-d099-47f1-b3a2-2dbc93c53d18
      
     
  
  
    
      Eriksson, Lars-Henrik
      
        6b1ad5ac-6d5d-475b-b752-51377c72dac2
      
     
  
    
      Lindsay, Peter A.
      
        4e729d6e-fb9f-432f-adcc-aee911fa4413
      
     
  
   
  
  
    
      2002
    
    
  
  
    
      Whalen, Michael
      
        af8ec115-183c-4b24-8348-554843e7051f
      
     
  
    
      Schumann, Johann
      
        03135c8b-0f6e-4a20-9453-6a4e2d8a1e23
      
     
  
    
      Fischer, Bernd
      
        0c9575e6-d099-47f1-b3a2-2dbc93c53d18
      
     
  
    
      Eriksson, Lars-Henrik
      
        6b1ad5ac-6d5d-475b-b752-51377c72dac2
      
     
  
    
      Lindsay, Peter A.
      
        4e729d6e-fb9f-432f-adcc-aee911fa4413
      
     
  
       
    
 
  
    
      
  
  
  
  
    Whalen, Michael, Schumann, Johann and Fischer, Bernd
  
  
  
  
   
    (2002)
  
  
    
    Synthesizing Certified Code.
  
  
  
    
      Eriksson, Lars-Henrik and Lindsay, Peter A. 
      (eds.)
    
  
  
    
    
    
      
        
   
  
    FME 2002: Formal Methods - Getting IT Right, International Symposium of Formal Methods Europe, Copenhagen.
   
        
        
        22 - 24  Jul 2002.
      
    
  
  
  
      
          
          
        .
    
  
  
  
  
  
   
  
    
      Record type:
      Conference or Workshop Item
      (Paper)
      
      
    
   
    
    
      
        
          Abstract
          Code certification is a lightweight approach for formally demonstrating software quality. Its basic idea is to require code producers to provide formal proofs that their code satisfies certain quality properties. These proofs serve as certificates that can be checked independently. Since code certification uses the same underlying technology as program verification, it requires detailed annotations (e.g., loop invariants) to make the proofs possible. However, manually adding annotations to the code is time-consuming and error-prone. We address this problem by combining code certification with automatic program synthesis. Given a high-level specification, our approach simultaneously generates code and all annotations required to certify the generated code. We describe a certification extension of AutoBayes, a synthesis tool for automatically generating data analysis programs. Based on built-in domain knowledge, proof annotations are added and used to generate proof obligations that are discharged by the automated theorem prover E-SETHEO. We demonstrate our approach by certifying operator- and memory-safety on a data-classification program. For this program, our approach was faster and more precise than PolySpace, a commercial static analysis tool.
         
      
      
        
          
            
  
    Text
 whalen-fme.pdf
     - Other
   
  
  
 
          
            
          
            
           
            
           
        
        
       
    
   
  
  
  More information
  
    
      Published date: 2002
 
    
  
  
    
  
    
     
        Additional Information:
        Event Dates: July 22-24, 2002
      
    
  
    
     
        Venue - Dates:
        FME 2002: Formal Methods - Getting IT Right, International Symposium of Formal Methods Europe, Copenhagen, 2002-07-22 - 2002-07-24
      
    
  
    
  
    
  
    
     
        Keywords:
        automatic program synthesis, program verification, code certification, proof-carrying code, automated theorem proving
      
    
  
    
     
        Organisations:
        Electronic & Software Systems
      
    
  
    
  
  
        Identifiers
        Local EPrints ID: 262941
        URI: http://eprints.soton.ac.uk/id/eprint/262941
        
        
          ISBN: 3-540-43928-5
        
        
        
          PURE UUID: 946d6bc2-5e40-4527-83bd-71aeb3819b67
        
  
    
        
          
        
    
        
          
        
    
        
          
            
          
        
    
        
          
        
    
        
          
        
    
  
  Catalogue record
  Date deposited: 06 Sep 2006
  Last modified: 14 Mar 2024 07:22
  Export record
  
  
 
 
  
    
    
      Contributors
      
          
          Author:
          
            
            
              Michael Whalen
            
          
        
      
          
          Author:
          
            
            
              Johann Schumann
            
          
        
      
          
          Author:
          
            
              
              
                Bernd Fischer
              
              
            
            
          
        
      
          
          Editor:
          
            
            
              Lars-Henrik Eriksson
            
          
        
      
          
          Editor:
          
            
            
              Peter A. Lindsay
            
          
        
      
      
      
    
  
   
  
    Download statistics
    
      Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.
      
      View more statistics