Informazioni sul servizio
TradottoSono un ingegnere delle prove e mi specializzo nel sistema di dimostrazione interattiva Coq e nel suo linguaggio di specifica Gallina. Il mio compito è rimuovere la frase "probabilmente funziona" dal tuo codice e sostituirla con una prova che la macchina stessa verifica. Data un algoritmo, un protocollo o un'affermazione matematica, scrivo la sua specifica in Gallina, poi costruisco interattivamente una prova che l'implementazione corrisponda ad essa, coprendo tutti i casi senza eccezione. Nulla è preso per fede: ogni lemma è derivato e ricontrollato dal compilatore coqc ad ogni build. Di solito vengo contattato per dimostrare formalmente gli invarianti delle strutture dati, giustificare la terminazione e la correttezza funzionale delle funzioni ricorsive, meccanizzare teoremi dalla combinatoria, algebra o logica, e modellare automi finiti per proprietà di concorrenza e sicurezza. Parlo fluentemente i linguaggi tattici Ltac e Ltac2, la disciplina SSReflect insieme alla libreria Mathematical Components, tipi dipendenti, ricorsione ben fondata e predicati induttivi. Quando le prove convergono, utilizzo il meccanismo di estrazione di Coq per ottenere codice eseguibile pulito in OCaml che porta le garanzie di prova in produzione; quando necessario, preparo l'estrazione in Haskell o Scheme. Ricevi uno sviluppo Coq documentato che si compila senza ammissioni e assiomi non necessari, una specifica leggibile, moduli estratti e testati e un breve rapporto su ciò che i teoremi promettono e dove si trovano i loro confini. Ho meccanizzato passaggi del compilatore, verificato primitive aritmetiche e crittografiche e ripristinato script di prova rotti da aggiornamenti della libreria. Se hai bisogno non solo di un campione di test ma di fiducia, ti darò un risultato che è vero per costruzione e rimane vero mentre il codice evolve.