Skip to content

Commit b0bfa90

Browse files
committed
Merge branch 'master' into Iced_cake
2 parents 1c24925 + 8eb9e72 commit b0bfa90

File tree

19 files changed

+149
-152
lines changed

19 files changed

+149
-152
lines changed

compiler/backend/ag32/proofs/ag32_basis_ffiProofScript.sml

+64-65
Original file line numberDiff line numberDiff line change
@@ -3043,7 +3043,20 @@ Proof
30433043
simp[Abbr`m'`]
30443044
\\ IF_CASES_TAC
30453045
>- (
3046-
DEP_REWRITE_TAC[get_mem_word_asm_write_bytearray_UNCHANGED_LT]
3046+
IF_CASES_TAC
3047+
>- (
3048+
DEP_REWRITE_TAC[get_mem_word_asm_write_bytearray_UNCHANGED_LT]
3049+
\\ conj_tac
3050+
>- (
3051+
EVAL_TAC \\ fs[]
3052+
\\ Cases_on`ms.R 3w` \\ fs[]
3053+
\\ fs[word_ls_n2w, word_lo_n2w]
3054+
\\ fs[EVAL``heap_start_offset``] )
3055+
\\ DEP_REWRITE_TAC[get_mem_word_UPDATE]
3056+
\\ conj_tac >- EVAL_TAC
3057+
\\ simp[])
3058+
\\ pop_assum kall_tac
3059+
\\ DEP_REWRITE_TAC[get_mem_word_asm_write_bytearray_UNCHANGED_LT]
30473060
\\ conj_tac
30483061
>- (
30493062
EVAL_TAC \\ fs[]
@@ -3076,19 +3089,13 @@ Proof
30763089
\\ simp[Q.ISPEC`λx. 1n`SUM_MAP_K |> SIMP_RULE(srw_ss())[]]
30773090
\\ rw[]
30783091
\\ simp[Abbr`m'`]
3079-
\\ rw[]
3092+
\\ reverse IF_CASES_TAC
30803093
>- (
3081-
irule EQ_SYM
3082-
\\ irule asm_write_bytearray_unchanged_all_words
3083-
\\ conj_tac
3094+
simp[APPLY_UPDATE_THM]
3095+
\\ IF_CASES_TAC
30843096
>- (
3085-
simp[IN_all_words, LENGTH_TAKE_EQ_MIN]
3097+
pop_assum mp_tac
30863098
\\ EVAL_TAC
3087-
\\ simp[DISJ_EQ_IMP]
3088-
\\ qmatch_goalsub_abbrev_tac`LENGTH conf + (k + _)`
3089-
\\ `k ≤ 2048` by simp[Abbr`k`]
3090-
\\ reverse(Cases_on`LENGTH conf = 8` \\ fs[])
3091-
>- ( rveq \\ fs[LUPDATE_def] )
30923099
\\ fs[EVAL``cline_size``] )
30933100
\\ irule EQ_SYM
30943101
\\ irule asm_write_bytearray_unchanged_all_words
@@ -3104,12 +3111,38 @@ Proof
31043111
\\ rw[]
31053112
\\ pop_assum mp_tac
31063113
\\ EVAL_TAC
3107-
\\ fs[EVAL``cline_size``] )
3108-
\\ simp[APPLY_UPDATE_THM]
3114+
\\ fs[EVAL``cline_size``]
3115+
)
31093116
\\ IF_CASES_TAC
31103117
>- (
3111-
pop_assum mp_tac
3118+
irule EQ_SYM
3119+
\\ irule asm_write_bytearray_unchanged_all_words
3120+
\\ conj_tac
3121+
>- (
3122+
simp[IN_all_words, word_add_n2w, ADD1, DISJ_EQ_IMP]
3123+
\\ Cases_on`ms.R 3w` \\ fs[EVAL``heap_start_offset``, ADD1]
3124+
\\ simp[word_add_n2w, EVAL``startup_code_size``]
3125+
\\ rw[]
3126+
\\ fs[EVAL``cline_size``]
3127+
\\ fs[word_lo_n2w, word_ls_n2w] )
3128+
\\ simp[APPLY_UPDATE_THM]
3129+
\\ rw[]
3130+
\\ pop_assum mp_tac
3131+
\\ EVAL_TAC
3132+
\\ fs[EVAL``cline_size``]
3133+
)
3134+
\\ pop_assum kall_tac
3135+
\\ irule EQ_SYM
3136+
\\ irule asm_write_bytearray_unchanged_all_words
3137+
\\ conj_tac
3138+
>- (
3139+
simp[IN_all_words, LENGTH_TAKE_EQ_MIN]
31123140
\\ EVAL_TAC
3141+
\\ simp[DISJ_EQ_IMP]
3142+
\\ qmatch_goalsub_abbrev_tac`LENGTH conf + (k + _)`
3143+
\\ `k ≤ 2048` by simp[Abbr`k`]
3144+
\\ reverse(Cases_on`LENGTH conf = 8` \\ fs[])
3145+
>- ( rveq \\ fs[LUPDATE_def] )
31133146
\\ fs[EVAL``cline_size``] )
31143147
\\ irule EQ_SYM
31153148
\\ irule asm_write_bytearray_unchanged_all_words
@@ -4186,14 +4219,17 @@ Proof
41864219
\\ simp[ag32_ffi_mem_domain_def]
41874220
\\ EVAL_TAC
41884221
\\ fs[word_ls_n2w, word_lo_n2w, word_add_n2w] )
4222+
\\ `LENGTH conf = 8` by (
4223+
fs[fsFFITheory.ffi_write_def]
4224+
\\ fs[OPTION_CHOICE_EQUALS_OPTION, LUPDATE_def] \\ rveq \\ fs[] )
4225+
\\ fs[]
41894226
\\ irule asm_write_bytearray_unchanged
41904227
\\ qpat_x_assum`_ = w2n (ms.R 4w)`(assume_tac o SYM)
41914228
\\ Cases_on`ms.R 3w` \\ fs[memory_size_def]
41924229
\\ qpat_x_assum`_ = w2n (ms.R 2w)`(assume_tac o SYM) \\ fs[]
41934230
\\ fs[word_add_n2w]
41944231
\\ fs[EVAL``output_offset``]
41954232
\\ Cases_on`x` \\ fs[word_lo_n2w, word_ls_n2w]
4196-
\\ qmatch_goalsub_abbrev_tac`LENGTH conf + ll`
41974233
\\ pop_assum mp_tac
41984234
\\ simp[LENGTH_TAKE_EQ]
41994235
\\ reverse IF_CASES_TAC
@@ -4204,11 +4240,7 @@ Proof
42044240
\\ pairarg_tac \\ fs[fsFFITheory.write_def]
42054241
\\ pairarg_tac \\ fs[] \\ rveq )
42064242
\\ simp[EVAL``output_buffer_size``]
4207-
\\ `LENGTH conf = 8` by (
4208-
fs[fsFFITheory.ffi_write_def]
4209-
\\ fs[OPTION_CHOICE_EQUALS_OPTION, LUPDATE_def] \\ rveq \\ fs[] )
42104243
\\ strip_tac
4211-
\\ simp[Abbr`ll`]
42124244
\\ conj_tac >- simp[MIN_DEF]
42134245
\\ conj_tac
42144246
>- (
@@ -6138,7 +6170,7 @@ Theorem ag32_good_init_state:
61386170
∃io_regs cc_regs.
61396171
good_init_state (ag32_machine_config ffi_names (LENGTH code) (LENGTH data))
61406172
(FUNPOW Next startup_clock ms0)
6141-
(basis_ffi cl fs) code 0
6173+
code 0
61426174
((init_asm_state code data ffi_names (cl,inp)) with
61436175
mem_domain := (ag32_machine_config ffi_names (LENGTH code) (LENGTH data)).prog_addresses)
61446176
(λk. Word
@@ -6246,13 +6278,9 @@ Proof
62466278
\\ fs[ag32_targetTheory.ag32_ok_def]
62476279
\\ fs[ag32_targetTheory.ag32_config_def]
62486280
>- (
6249-
fs[ffiTheory.call_FFI_def]
6250-
\\ rveq
6251-
\\ reverse conj_tac
6252-
>- (
6253-
rw[]
6254-
\\ rw[APPLY_UPDATE_THM, targetSemTheory.get_reg_value_def, EVAL``ALOOKUP ffi_exitpcs ""``] )
6255-
\\ rw[]
6281+
rw[]
6282+
\\ rw[APPLY_UPDATE_THM, targetSemTheory.get_reg_value_def,
6283+
EVAL``ALOOKUP ffi_exitpcs ""``]
62566284
\\ irule EQ_SYM
62576285
\\ irule asm_write_bytearray_id
62586286
\\ gen_tac \\ strip_tac
@@ -6283,9 +6311,6 @@ Proof
62836311
\\ fs[IS_SOME_EXISTS]
62846312
\\ rpt(IF_CASES_TAC \\ simp[targetSemTheory.get_reg_value_def]))
62856313
\\ rw[]
6286-
\\ rfs[ffiTheory.call_FFI_def]
6287-
\\ `st.oracle = (basis_ffi cl fs).oracle` by metis_tac[evaluatePropsTheory.RTC_call_FFI_rel_consts]
6288-
\\ fs[basis_ffiTheory.basis_ffi_def]
62896314
\\ `EL index ffi_names ∈ set(MAP FST FFI_codes)` by (
62906315
fs[SUBSET_DEF]
62916316
\\ fs[FFI_codes_def, ffi_exitpcs_def]
@@ -6296,14 +6321,6 @@ Proof
62966321
\\ qpat_x_assum`MEM nm _`mp_tac
62976322
\\ simp[Once FFI_codes_def]
62986323
\\ strip_tac \\ rveq \\ fs[]
6299-
\\ qmatch_asmsub_abbrev_tac`oracle_result_CASE r`
6300-
\\ pop_assum mp_tac
6301-
\\ simp[basis_ffiTheory.basis_ffi_oracle_def]
6302-
\\ strip_tac \\ fs[Abbr`r`]
6303-
\\ fs[CaseEq"option",CaseEq"bool",CaseEq"oracle_result"]
6304-
\\ pairarg_tac \\ fs[]
6305-
\\ fs[CaseEq"option",CaseEq"bool",CaseEq"oracle_result",CaseEq"ffi_result"]
6306-
\\ rveq \\ fs[]
63076324
\\ simp[ag32_ffi_mem_update_def]
63086325
\\ qmatch_goalsub_abbrev_tac`asm_write_bytearray p new_bytes m2`
63096326
\\ `asm_write_bytearray p new_bytes m2 a = asm_write_bytearray p new_bytes t1.mem a`
@@ -6315,14 +6332,8 @@ Proof
63156332
\\ simp[ag32_prog_addresses_def]
63166333
\\ qpat_x_assum` _ < memory_size`mp_tac
63176334
\\ EVAL_TAC \\ simp[])
6318-
\\ TRY (
6319-
CHANGED_TAC(fs[fsFFITheory.ffi_read_def])
6320-
\\ fs[CaseEq"list"] \\ rveq
6321-
\\ PURE_TOP_CASE_TAC \\ fs[]
6322-
\\ PURE_TOP_CASE_TAC \\ fs[]
6323-
\\ PURE_TOP_CASE_TAC \\ fs[]
6324-
\\ reverse IF_CASES_TAC >- rw[]
6325-
\\ rw[]
6335+
>- (
6336+
ntac 3 (PURE_TOP_CASE_TAC >> simp[]) >> IF_CASES_TAC >> rw[]
63266337
\\ qmatch_goalsub_abbrev_tac`set_mem_word x y m a`
63276338
\\ qpat_x_assum`m a = _`(SUBST1_TAC o SYM)
63286339
\\ irule set_mem_word_neq
@@ -6333,7 +6344,7 @@ Proof
63336344
\\ qpat_x_assum`_ < memory_size`mp_tac
63346345
\\ EVAL_TAC
63356346
\\ Cases_on`a` \\ fs[word_ls_n2w, word_lo_n2w, word_add_n2w]
6336-
\\ NO_TAC)
6347+
)
63376348
\\ reverse IF_CASES_TAC
63386349
>- (
63396350
rw[APPLY_UPDATE_THM]
@@ -6345,23 +6356,10 @@ Proof
63456356
\\ rw[]
63466357
\\ fs[targetSemTheory.read_ffi_bytearrays_def]
63476358
\\ fs[targetSemTheory.read_ffi_bytearray_def]
6348-
\\ fs[fsFFITheory.ffi_write_def]
6349-
\\ fs[CaseEq"list"] \\ rveq
6350-
\\ qhdtm_x_assum`OPTION_CHOICE`mp_tac
6351-
\\ rewrite_tac[OPTION_CHOICE_EQUALS_OPTION]
6352-
\\ reverse strip_tac
6353-
>- (
6354-
pop_assum mp_tac \\ simp[LUPDATE_def]
6355-
\\ strip_tac \\ rveq
6356-
\\ qpat_x_assum`_ = 0w`mp_tac
6357-
\\ simp[] )
6358-
\\ fs[]
6359-
\\ pairarg_tac \\ fs[] \\ rveq
6360-
\\ rw[]
6361-
\\ irule asm_write_bytearray_unchanged
6359+
\\ ntac 5 (PURE_TOP_CASE_TAC >> simp[])
6360+
\\ irule asm_write_bytearray_unchanged \\ simp[]
63626361
\\ fs[EVAL``output_offset``, output_buffer_size_def]
63636362
\\ fs[LENGTH_TAKE_EQ, fsFFITheory.write_def]
6364-
\\ pairarg_tac \\ fs[]
63656363
\\ qpat_x_assum`_ ∈ _.mem_domain`mp_tac
63666364
\\ qpat_x_assum`_ = _.mem_domain`(mp_tac o SYM)
63676365
\\ simp[ag32_prog_addresses_def]
@@ -6370,7 +6368,8 @@ Proof
63706368
\\ qpat_x_assum`_ < memory_size`mp_tac
63716369
\\ CONV_TAC(LAND_CONV EVAL)
63726370
\\ Cases_on`a` \\ fs[word_ls_n2w, word_lo_n2w, word_add_n2w]
6373-
\\ rw[MIN_DEF])
6371+
\\ rw[MIN_DEF]
6372+
)
63746373
\\ conj_tac >- (
63756374
rw[targetSemTheory.ccache_interfer_ok_def, ag32_machine_config_def,
63766375
lab_to_targetTheory.ffi_offset_def, ag32_ccache_interfer_def,
@@ -6505,7 +6504,7 @@ Theorem ag32_installed:
65056504
x ∉ ag32_startup_addresses ⇒
65066505
((FUNPOW Next startup_clock ms0).MEM x = ms0.MEM x))
65076506
6508-
installed code 0 data 0 (SOME ffi_names) (basis_ffi cl fs)
6507+
installed code 0 data 0 (SOME ffi_names)
65096508
(heap_regs ag32_backend_config.stack_conf.reg_names)
65106509
(ag32_machine_config ffi_names (LENGTH code) (LENGTH data))
65116510
(FUNPOW Next startup_clock ms0)
@@ -6523,7 +6522,7 @@ Proof
65236522
\\ disch_then drule
65246523
\\ disch_then drule
65256524
\\ strip_tac
6526-
\\ qmatch_asmsub_abbrev_tac`good_init_state _ _ _ _ _ t`
6525+
\\ qmatch_asmsub_abbrev_tac`good_init_state _ _ _ _ t`
65276526
\\ qexists_tac`t` \\ simp[Abbr`t`]
65286527
\\ asm_exists_tac \\ fs[]
65296528
\\ qhdtm_x_assum`good_init_state` mp_tac

compiler/backend/ag32/proofs/ag32_machine_configScript.sml

+7-2
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,22 @@ val ag32_ffi_mem_update_def = Define`
3939
ag32_ffi_mem_update name conf bytes new_bytes mem =
4040
if (name = "write") then
4141
if (HD new_bytes = 0w) then
42-
case bytes of (n1 :: n0 :: off1 :: off0 :: tll) =>
42+
case bytes of
43+
| (n1 :: n0 :: off1 :: off0 :: tll) =>
44+
if LENGTH conf ≠ 8 then mem else
4345
let k = MIN (w22n [n1; n0]) output_buffer_size in
4446
let written = TAKE k (DROP (w22n [off1; off0]) tll) in
4547
asm_write_bytearray (n2w output_offset) (conf ++ [0w;0w;n1;n0] ++ written) mem
48+
| _ => mem
4649
else ((n2w output_offset) =+ 1w) mem
4750
else if (name = "read") then
48-
case new_bytes of (zz :: k1 :: k0 :: _) =>
51+
case new_bytes of
52+
| (zz :: k1 :: k0 :: _) =>
4953
if (zz = 0w) then
5054
set_mem_word (n2w stdin_offset)
5155
(get_mem_word mem (n2w stdin_offset) + n2w (w22n [k1; k0])) mem
5256
else mem
57+
| _ => mem
5358
else mem`;
5459

5560
val ag32_ffi_interfer_def = Define`

compiler/backend/arm8_asl/arm8_asl_configProofScript.sml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Theorem arm8_asl_compile_correct:
4343
compile arm8_backend_config prog = SOME (bytes, bitmaps, config') ⇒
4444
let (s,env) = THE (prim_sem_env ffi) in
4545
¬semantics_prog s env prog Fail ∧
46-
installed bytes cbspace bitmaps data_sp config'.lab_conf.ffi_names ffi (1,3) mc ms
46+
installed bytes cbspace bitmaps data_sp config'.lab_conf.ffi_names (1,3) mc ms
4747
⇒ machine_sem mc ffi ms ⊆
4848
extend_with_resource_limit (semantics_prog s env prog)
4949
Proof

compiler/backend/proofs/backendProofScript.sml

+8-7
Original file line numberDiff line numberDiff line change
@@ -2966,7 +2966,7 @@ Theorem compile_correct':
29662966
¬semantics_prog s env prog Fail ∧
29672967
backend_config_ok c ∧ lab_to_targetProof$mc_conf_ok mc ∧ mc_init_ok c mc ∧
29682968
opt_eval_config_wf c' ev ∧
2969-
installed bytes cbspace bitmaps data_sp c'.lab_conf.ffi_names ffi (heap_regs c.stack_conf.reg_names) mc ms ⇒
2969+
installed bytes cbspace bitmaps data_sp c'.lab_conf.ffi_names (heap_regs c.stack_conf.reg_names) mc ms ⇒
29702970
machine_sem (mc:(α,β,γ) machine_config) ffi ms ⊆
29712971
extend_with_resource_limit'
29722972
(is_safe_for_space ffi c prog (read_limits c mc ms))
@@ -3116,7 +3116,7 @@ Proof
31163116
\\ disch_tac \\ fs []
31173117
\\ fs [attach_bitmaps_def] \\ rveq \\ fs [] \\
31183118
fs[targetSemTheory.installed_def] \\
3119-
qmatch_assum_abbrev_tac`good_init_state mc ms ffi bytes cbspace tar_st m dm io_regs cc_regs` \\
3119+
qmatch_assum_abbrev_tac`good_init_state mc ms bytes cbspace tar_st m dm io_regs cc_regs` \\
31203120
qpat_x_assum`Abbrev(p7 = _)` mp_tac>>
31213121
qmatch_goalsub_abbrev_tac`compile _ _ _ stk stoff`>>
31223122
strip_tac \\
@@ -3337,11 +3337,12 @@ Proof
33373337
`Fail ∉ y` by (fs [Abbr `y`] \\ fs [GSYM pure_co_def, simple_orac_eqs]) \\
33383338
pop_assum mp_tac \\ simp[GSYM implements'_def] \\
33393339
simp[Abbr`y`] \\
3340-
old_drule (GEN_ALL lab_to_targetProofTheory.semantics_compile) \\
3340+
old_drule $ GEN_ALL $
3341+
INST_TYPE [delta |-> ``:'ffi``] lab_to_targetProofTheory.semantics_compile \\
33413342
disch_then(old_drule o CONV_RULE(STRIP_QUANT_CONV(LAND_CONV(move_conj_left(optionSyntax.is_some o rhs))))) \\
33423343
simp[Abbr`c4`] \\
33433344
disch_then(old_drule o CONV_RULE(STRIP_QUANT_CONV(LAND_CONV(move_conj_left(same_const``good_init_state`` o fst o strip_comb))))) \\
3344-
disch_then(qspec_then`lab_oracle`mp_tac)
3345+
disch_then(qspecl_then[`ffi`,`lab_oracle`]mp_tac)
33453346
\\ old_drule (GEN_ALL bvi_tailrecProofTheory.compile_prog_next_mono)
33463347
\\ strip_tac
33473348
\\ pop_assum(assume_tac o Abbrev_intro)
@@ -3732,7 +3733,7 @@ Theorem compile_correct:
37323733
let (s,env) = THE (prim_sem_env (ffi:'ffi ffi_state)) in
37333734
¬semantics_prog s env prog Fail ∧
37343735
backend_config_ok c ∧ lab_to_targetProof$mc_conf_ok mc ∧ mc_init_ok c mc ∧
3735-
installed bytes cbspace bitmaps data_sp c'.lab_conf.ffi_names ffi
3736+
installed bytes cbspace bitmaps data_sp c'.lab_conf.ffi_names
37363737
(heap_regs c.stack_conf.reg_names) mc ms ⇒
37373738
machine_sem (mc:(α,β,γ) machine_config) ffi ms ⊆
37383739
extend_with_resource_limit (semantics_prog s env prog)
@@ -3759,7 +3760,7 @@ Theorem compile_correct_is_safe_for_space:
37593760
let (s,env) = THE (prim_sem_env (ffi:'ffi ffi_state)) in
37603761
¬semantics_prog s env prog Fail ∧
37613762
backend_config_ok c ∧ lab_to_targetProof$mc_conf_ok mc ∧ mc_init_ok c mc ∧
3762-
installed bytes cbspace bitmaps data_sp c'.lab_conf.ffi_names ffi
3763+
installed bytes cbspace bitmaps data_sp c'.lab_conf.ffi_names
37633764
(heap_regs c.stack_conf.reg_names) mc ms ⇒
37643765
machine_sem (mc:(α,β,γ) machine_config) ffi ms =
37653766
semantics_prog s env prog
@@ -3783,7 +3784,7 @@ Theorem compile_correct_eval:
37833784
let (s0,env) = THE (prim_sem_env (ffi: 'ffi ffi_state)) in
37843785
¬semantics_prog (add_eval_state ev s0) env prog Fail ∧ backend_config_ok c ∧
37853786
lab_to_targetProof$mc_conf_ok mc ∧ mc_init_ok c mc ∧ opt_eval_config_wf c' ev ∧
3786-
installed bytes cbspace bitmaps data_sp c'.lab_conf.ffi_names ffi
3787+
installed bytes cbspace bitmaps data_sp c'.lab_conf.ffi_names
37873788
(heap_regs c.stack_conf.reg_names) mc ms ⇒
37883789
machine_sem mc ffi ms ⊆
37893790
extend_with_resource_limit

compiler/backend/proofs/lab_to_targetProofScript.sml

+6-5
Original file line numberDiff line numberDiff line change
@@ -6558,7 +6558,7 @@ val IMP_state_rel_make_init = Q.prove(
65586558
list_subset (find_ffi_names code) mc_conf.ffi_names ∧
65596559
remove_labels clock mc_conf.target.config 0 LN mc_conf.ffi_names code =
65606560
SOME (code2,labs) /\
6561-
good_init_state mc_conf ms ffi (prog_to_bytes code2)
6561+
good_init_state mc_conf ms (prog_to_bytes code2)
65626562
cbspace t m dm io_regs cc_regs
65636563
==>
65646564
state_rel ((mc_conf: ('a,'state,'b) machine_config),code2,labs,
@@ -6584,8 +6584,9 @@ val IMP_state_rel_make_init = Q.prove(
65846584
ccache_interfer_ok_def]
65856585
\\ rfs[]
65866586
\\ conj_tac >- (
6587-
rw[] \\ first_x_assum irule
6588-
\\ rw[] \\ asm_exists_tac \\ rw[] )
6587+
rw[] >> first_x_assum irule >> simp[] >>
6588+
gvs[call_FFI_def, AllCaseEqs()]
6589+
)
65896590
\\ conj_tac >-
65906591
(strip_tac >>
65916592
pairarg_tac >> fs[]>>
@@ -6740,7 +6741,7 @@ val semantics_compile_lemma = Q.prove(
67406741
lab_to_target$compile (c:'a lab_to_target$config) code = SOME (bytes,c') /\
67416742
(* FFI is either given or computed *)
67426743
c'.ffi_names = SOME mc_conf.ffi_names /\
6743-
good_init_state mc_conf ms ffi bytes cbspace t m dm io_regs cc_regs /\
6744+
good_init_state mc_conf ms bytes cbspace t m dm io_regs cc_regs /\
67446745
semantics (make_init mc_conf ffi io_regs cc_regs t m dm ms code
67456746
lab_to_target$compile (mc_conf.target.get_pc ms+n2w(LENGTH bytes)) cbspace
67466747
coracle
@@ -6799,7 +6800,7 @@ Theorem semantics_compile:
67996800
c.labels = LN ∧ c.pos = 0
68006801
compile c code = SOME (bytes,c') ∧
68016802
c'.ffi_names = SOME (mc_conf.ffi_names) /\
6802-
good_init_state mc_conf ms (ffi:'ffi ffi_state) bytes cbspace t m dm io_regs cc_regs ⇒
6803+
good_init_state mc_conf ms bytes cbspace t m dm io_regs cc_regs ⇒
68036804
implements' T (machine_sem mc_conf ffi ms)
68046805
{semantics
68056806
(make_init mc_conf ffi io_regs cc_regs t m (dm ∩ byte_aligned) ms code

0 commit comments

Comments
 (0)