Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Verifying gcm_init_v8 -- a proof strategy #247

Open
wants to merge 28 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e37d50f
More gcm_init_v8
pennyannn Nov 12, 2024
4410723
Add an important lemma
pennyannn Nov 13, 2024
4a9ca4d
Add another lemma for gcm_init_H_asm
pennyannn Nov 13, 2024
3b01254
Identified a set of lemmas for simplifying the goal
pennyannn Nov 14, 2024
2ffd8d7
Need to look into RME to prove gcm_polyval_asm_gcm_polyval_equiv
pennyannn Nov 14, 2024
557856a
Prove a couple more lemmas
pennyannn Nov 14, 2024
5b14ee2
Renaming and simplifying theorems
pennyannn Nov 14, 2024
64483b7
Some more experiments
pennyannn Nov 15, 2024
8950f38
Incremental proof for gcm_init_v8
pennyannn Nov 18, 2024
9f74fc1
Bug in h_s36_non_effects
pennyannn Nov 19, 2024
6b0c220
Proving sorry'ed lemmas
pennyannn Nov 19, 2024
3a68c55
Proving h_H3, h_H4, h_H5
pennyannn Nov 20, 2024
c5c3d40
Proving h_H6, h_H7, h_H8
pennyannn Nov 20, 2024
e855c82
Proving h_H9, h_H10 and h_H11 and finish the rest of the proof
pennyannn Nov 20, 2024
eb0e911
Fix an import issue
pennyannn Nov 20, 2024
263b643
Clean up comments and proved some sorry'ed lemmas
pennyannn Nov 20, 2024
4fd2eb9
Proving h_v16_s106
pennyannn Nov 21, 2024
03e57d9
Proving h_v17_s107
pennyannn Nov 21, 2024
71d054d
Proving h_v16_s73 and h_v18_s75
pennyannn Nov 21, 2024
da3b434
Proving h_v16_s144
pennyannn Nov 21, 2024
b708c6c
Proving h_v17_s145
pennyannn Nov 21, 2024
0e35e57
Proving all intermediate lemmas in the theorem
pennyannn Nov 21, 2024
df846b7
Clarify bv lemmas and cleanup
pennyannn Nov 21, 2024
a54bfd0
Add an example for problem with bv_decide
pennyannn Nov 22, 2024
e7e3cf6
Exposing the bv_decide problem
pennyannn Nov 22, 2024
42ae5e1
Revert "Exposing the bv_decide problem"
pennyannn Dec 2, 2024
2976e95
Removing debugging tests
pennyannn Dec 2, 2024
1e0099d
Merge branch 'main' into yppe/gcm_init_v8
shigoel Dec 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions Arm/Insts/DPSFP/Advanced_simd_three_different.lean
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,16 @@ def pmull_op (e : Nat) (esize : Nat) (elements : Nat) (x : BitVec n)
pmull_op (e + 1) esize elements x y result
termination_by (elements - e)

theorem pmull_op_e_0_eize_64_elements_1_size_128_eq (x y : BitVec 64) :
DPSFP.pmull_op 0 64 1 x y 0#128 =
DPSFP.polynomial_mult x y := by
unfold DPSFP.pmull_op
simp (config := {ground := true}) only [minimal_theory]
unfold DPSFP.pmull_op
simp (config := {ground := true}) only [minimal_theory]
simp only [state_simp_rules, bitvec_rules]
done

@[state_simp_rules]
def exec_pmull (inst : Advanced_simd_three_different_cls) (s : ArmState) : ArmState :=
-- This function assumes IsFeatureImplemented(FEAT_PMULL) is true
Expand Down
Loading
Loading