aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64/Asmgenproof.v
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Some subcases for exec_basic_simuLéo Gourdin2020-10-141-86/+49
| | | | | | | | | | | | | | | | | | | | | - Ploadsymbol - Pcvtsw2x - Pcvtuw2x - Pcvtx2w - First subcase for PArithCompPP
* | | an idea to tackle PArithComparisonPPSylvain Boulmé2020-10-141-2/+43
| | |
* | | draft commit for the Pallocframe proof subcaseLéo Gourdin2020-10-141-2/+15
| | |
* | | Pstore preserved lemmaLéo Gourdin2020-10-141-3/+64
| | |
* | | Other subcases for PArith are done.Léo Gourdin2020-10-141-8/+29
| | |
* | | Draft commit on the PArithComparisonPP ProofLéo Gourdin2020-10-141-14/+72
| | | | | | | | | in exec_basic_simulation
* | | Simplifying Ltac and fixing a bug in AsmBlock semanticsLéo Gourdin2020-10-131-10/+30
| | | | | | | | | The bug was a typo on the PArithPPP subl inst
* | | Fixing the propagation of the new BOUNDED hypLéo Gourdin2020-10-131-8/+20
| | |
* | | Proof for PmovzLéo Gourdin2020-10-131-7/+29
| | | | | | | | | Adding Ltac to simplify code and improve readability
* | | Adding a lemma next_instr_preservedLéo Gourdin2020-10-121-7/+56
| | | | | | | | | this is useful in the exec_basic_simu proof
* | | Continue the proof of exec_basic_simulationLéo Gourdin2020-10-111-18/+12
| | |
* | | Adding a lemma for exec load propagation.Léo Gourdin2020-10-111-25/+27
| | | | | | | | | | | | The commit also contains an incomplete proof for assert (BDYLENPOS: ((length li) < length (body bb))%nat).
* | | Merge branch 'aarch64_block_bodystar' of ↵Léo Gourdin2020-10-101-10/+14
|\ \ \ | | | | | | | | | | | | gricad-gitlab.univ-grenoble-alpes.fr:sixcy/CompCert into aarch64_block_bodystar
| * \ \ Merge branch 'aarch64_block_bodystar' of ↵Sylvain Boulmé2020-10-101-0/+14
| |\ \ \ | | | | | | | | | | | | | | | gricad-gitlab.univ-grenoble-alpes.fr:sixcy/CompCert into aarch64_block_bodystar
| * | | | Still generalizing exec_body_simulation_plus for an inductive proofSylvain Boulmé2020-10-091-10/+14
| | | | | | | | | | | | | | | | | | | | This will require some lemma about is_tail...
* | | | | More general version of load preservation lemma.Léo Gourdin2020-10-101-7/+25
| |/ / / |/| | | | | | | | | | | Problem with the ptr bounds.
* | | | Adding a lemma for load preservationLéo Gourdin2020-10-101-0/+14
|/ / / | | | | | | | | | This is a test lemma, I may remove the exists predicate later.
* | | slight refactoring, in order to avoid a duplication of the proof.Sylvain Boulmé2020-10-091-40/+36
| | |
* | | exec_body_simulation without star'Léo Gourdin2020-10-091-0/+101
| | |
* | | Replace common pattern with simpler lemma.Justus Fasse2020-09-211-29/+16
| | | | | | | | | | | | | | | Turns two rewrites and a simplification into a single rewrite via list_length_z_cons.
* | | Proof of exec_body_simulation_plusJustus Fasse2020-09-211-1/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added exec_body_simulation_star' in order to prove it. exec_body_simulation_star' could also be used to prove exec_body_simulation_star directly (without using exec_body_simulation_plus). However, at least the way I did it the proof turns out to be longer. eexec_body_simulation_plus is still required/useful for exec_bblock_simulation.
* | | Move a couple of lemmas up in the fileJustus Fasse2020-09-211-68/+68
| | |
* | | Admitted lemma for exec_basic_simulation.Justus Fasse2020-09-211-0/+9
| | | | | | | | | | | | Probably still missing a couple of assumptions.
* | | Prove exec_body_dont_move_PCJustus Fasse2020-08-181-1/+64
| | | | | | | | | | | | | | | | | | Modify Asmblock.preg to combine iregsp and freg into dreg (dreg might be a misnomer since not all iregs are data regs) TODO: Adjust names of PArithP, PArithPP and the like
* | | Proof for size_of_blocks_max_posJustus Fasse2020-08-051-18/+50
| | |
* | | Minor cleanup of find_instr_bblockJustus Fasse2020-07-301-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | - Remove one auto-generated name - Move assertion on n's size up - Clear unnecessary hypothesis (iirc generalize worked better than exploit here) - Rewrite progress of Asm.find_instr only in the case that needs it
* | | Complete proof of find_instr_bblockJustus Fasse2020-07-301-3/+30
| | | | | | | | | | | | Cleanup is still TODO
* | | Absurd case in find_instr_bblockJustus Fasse2020-07-301-1/+107
| | | | | | | | | | | | | | | n points to neither label nor basic instruction but there is also no final exit instruction
* | | Prove find_instr_bblock_tailJustus Fasse2020-07-301-2/+89
| | |
* | | Simplify unfold_bblock and complete unfold_body's case in find_instr_bblockJustus Fasse2020-07-291-3/+74
| | | | | | | | | | | | | | | | | | | | | The previous version of unfold_bblock was copied from kvx/Asm.v. kvx's version is slightly different in that for the (here removed) special case it does not put a semicolon to separate bundles. Since aarch64 does not have kvx's bundles the two versions should be equivalent.
* | | Find label in base case of find_instr_bblockJustus Fasse2020-07-281-2/+18
| | |
* | | Messy progress on builtin-case of exec_exit_simulation_plusJustus Fasse2020-07-281-10/+25
| | |
* | | Messy progress on exec_exit_simulation_plusJustus Fasse2020-07-281-3/+27
| | | | | | | | | | | | | | | Proves exec_exit_simulation_plus for cf_instruction (as opposed to builtins)
* | | Rename/repurpose cf_instruction_simulated for exec_cfi_simulationJustus Fasse2020-07-281-179/+150
| | | | | | | | | | | | | | | exec_cfi_simulation's rephrasing is inspired by the needs of exec_exit_simulation_plus.
* | | Begin proof of exec_exit_simulation_plusJustus Fasse2020-07-271-0/+42
| | | | | | | | | | | | Mostly proving the absurd cases following inversion of is_nth_inst
* | | Playing around with find_instr_bblock's base caseJustus Fasse2020-07-271-7/+25
| | |
* | | Replace some auto-generated namesJustus Fasse2020-07-271-3/+3
| | |
* | | Move position of n in formulation of find_instr_bblockJustus Fasse2020-07-271-4/+4
| | | | | | | | | | | | | | | | | | This way exec_header_simulation does not break (without any changes). Depending on the base case of find_instr_bblock this may need to change again.
* | | Idea for find_instr_bblock's recursive caseJustus Fasse2020-07-271-7/+35
| | |
* | | Factorize common proof-pattern as lemmasJustus Fasse2020-07-271-8/+30
| | | | | | | | | | | | | | | unfolding a non-empty list of basic blocks will unfold the head (unfold_bblock) and then recur on the tail.
* | | Simplify premisesJustus Fasse2020-07-241-12/+9
| | |
* | | Remove unnecessary premiseJustus Fasse2020-07-241-4/+3
| | |
* | | Remove trailing whitespaceJustus Fasse2020-07-241-4/+4
| | |
* | | Complete size_headerJustus Fasse2020-07-241-1/+66
| | |
* | | Complete bblock_size_auxJustus Fasse2020-07-241-1/+24
| | |
* | | Complete bblock_size_aux_posJustus Fasse2020-07-241-1/+6
| | | | | | | | | | | | Steal use of list_length_z_aux_increase from exec_header_simulation.
* | | proof of exec_header_simulationSylvain Boulmé2020-07-231-10/+91
| | |
* | | Complete bblock_non_emptyJustus Fasse2020-07-231-1/+10
| | |
* | | Remove trailing whitespaceJustus Fasse2020-07-221-6/+6
| | |
* | | Complete proof of exec_exit_simulation_starJustus Fasse2020-07-221-2/+10
| | |