piCoq: Parallel Regression Proving for Large-Scale Verification Projects
piCoq: Parallel Regression Proving for Large-Scale Verification Projects
Karl Palmskog, Ahmet Celik, and Milos Gligoric The University of Texas at Austin, USA
1 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification - - PowerPoint PPT Presentation
piCoq: Parallel Regression Proving for Large-Scale Verification Projects piCoq: Parallel Regression Proving for Large-Scale Verification Projects Karl Palmskog , Ahmet Celik, and Milos Gligoric The University of Texas at Austin, USA 1 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects
1 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Introduction
2 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Introduction
3 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Introduction
4 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Introduction
4 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Introduction
5 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Background
6 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Background
Require Import List. Require Import ListUtil. Import ListNotations. Fixpoint dedup A A_eq_dec (xs : list A) : list A := match xs with | [] ⇒ [] | x :: xs ⇒ if in_dec A_eq_dec x xs then dedup A A_eq_dec xs else x :: dedup A A_eq_dec xs end. Lemma remove_dedup : forall A A_eq_dec (x : A) xs, remove A_eq_dec x (dedup A A_eq_dec xs) = dedup A A_eq_dec (remove A_eq_dec x xs). Proof. induction xs; intros; auto; simpl. repeat (try case in_dec; try case A_eq_dec; simpl; intuition); auto using f_equal.
Qed.
7 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Background
Require Import List. Require Import ListUtil. Import ListNotations. Fixpoint dedup A A_eq_dec (xs : list A) : list A := match xs with | [] ⇒ [] | x :: xs ⇒ if in_dec A_eq_dec x xs then dedup A A_eq_dec xs else x :: dedup A A_eq_dec xs end. Lemma remove_dedup : forall A A_eq_dec (x : A) xs, remove A_eq_dec x (dedup A A_eq_dec xs) = dedup A A_eq_dec (remove A_eq_dec x xs). Proof. induction xs; intros; auto; simpl. repeat (try case in_dec; try case A_eq_dec; simpl; intuition); auto using f_equal.
Qed.
7 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Background
Require Import List. Require Import ListUtil. Import ListNotations. Fixpoint dedup A A_eq_dec (xs : list A) : list A := match xs with | [] ⇒ [] | x :: xs ⇒ if in_dec A_eq_dec x xs then dedup A A_eq_dec xs else x :: dedup A A_eq_dec xs end. Lemma remove_dedup : forall A A_eq_dec (x : A) xs, remove A_eq_dec x (dedup A A_eq_dec xs) = dedup A A_eq_dec (remove A_eq_dec x xs). Proof. induction xs; intros; auto; simpl. repeat (try case in_dec; try case A_eq_dec; simpl; intuition); auto using f_equal.
Qed.
7 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Background
Require Import List. Require Import ListUtil. Import ListNotations. Fixpoint dedup A A_eq_dec (xs : list A) : list A := match xs with | [] ⇒ [] | x :: xs ⇒ if in_dec A_eq_dec x xs then dedup A A_eq_dec xs else x :: dedup A A_eq_dec xs end. Lemma remove_dedup : forall A A_eq_dec (x : A) xs, remove A_eq_dec x (dedup A A_eq_dec xs) = dedup A A_eq_dec (remove A_eq_dec x xs). Proof. induction xs; intros; auto; simpl. repeat (try case in_dec; try case A_eq_dec; simpl; intuition); auto using f_equal.
Qed.
7 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Background
Require Import List. Require Import ListUtil. Import ListNotations. Fixpoint dedup A A_eq_dec (xs : list A) : list A := match xs with | [] ⇒ [] | x :: xs ⇒ if in_dec A_eq_dec x xs then dedup A A_eq_dec xs else x :: dedup A A_eq_dec xs end. Lemma remove_dedup : forall A A_eq_dec (x : A) xs, remove A_eq_dec x (dedup A A_eq_dec xs) = dedup A A_eq_dec (remove A_eq_dec x xs). Proof. induction xs; intros; auto; simpl. repeat (try case in_dec; try case A_eq_dec; simpl; intuition); auto using f_equal.
Qed.
7 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Background
8 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Background
8 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
9 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
10 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
11 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
11 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
11 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
11 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
12 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
13 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
13 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
13 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
13 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
14 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
15 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
15 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
15 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
15 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
16 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
17 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
17 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
17 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
17 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
17 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
18 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
19 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
19 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
19 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
19 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
19 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
19 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
20 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
20 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
20 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
20 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
21 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
21 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Proof Checking Modes
21 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Evaluation
22 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Evaluation
23 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Evaluation
24 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Evaluation
20 40 befc2aa5 65187c83 af196a6f 96153bf0 30893b49 7c74911f cc869c0d a94e2add ac474859 8f7b7c3f 51ccec65 a21157ac 67c0544f 99d324c8 02aa4835 ef18b8b5 18363068 a43e920b f25236ff e49f02aa fc2b7663 a22616bb a035d3bd 680ca587
f·none p·none f·file p·file p·icoq 25 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Evaluation
10 20 30 0af6b37e ac790c93 a9bcb72a 78a261b5 79442b65 ca71b96c 4c1f4b3b 99f338f0 62d1a9d5 5f156d72 4b9edb51 b5020661 81d7d688 7a654d7c
f·none p·none f·file p·file p·icoq 26 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Evaluation
27 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Evaluation
28 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects Conclusion
29 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects
30 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects
31 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects
32 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects
33 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects
34 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects
35 / 29
piCoq: Parallel Regression Proving for Large-Scale Verification Projects
36 / 29