 the abstracted program will be exactly the same as the concrete one.

The goal of this abstraction is to reduce the space needed to encode a state of the computation. Instead of encoding $7$ registers, only $4$ are relevant for the computation of the WCET.

A valid abstract program must simulate the execution tree of the concrete program. To be equivalent WCET-wise to the concrete program, it should also preserve the addresses of the referenced memory cells to ensure that cache hits/misses are preserved.

To formalize the previous notions, we first define *critical* instructions. A *critical* instruction is an instruction that:

-   either sets some status bits; it can be a comparison or test () or an arithmetic instruction with the “s” flag on the ARM9 (a subtraction );

-   or an instruction that references a memory cell (load register with the content of memory cell $\mathsf{r2} + (\mathsf{r3} \times 4)$).

Next we define *abstract* instructions. As examplified for the instruction at line c previously, given an instruction $\iota$, the *abstracted instruction* $\iota^a$ is defined by:

-   the semantics of $\iota^a$ is ${[\![\iota^a]\!]}(v)=v'$ with $v'(x)=v(x)$ for each register $x$ different from **pc** and each memory cell $x$ in $\calM$, and $v'(\mathbf{pc})=v(\mathbf{pc})+1$;

-   the duration of $\iota^a$ in each stage of the pipeline is the same as the duration of $\iota$;

-   the registers read from/written to by $\iota^a$ are the same as the ones read from/written to by instruction $\iota$: $\phi(\iota)=\phi(\iota^a)$ for $\phi \in \{\iread,\iwrite,\mread,$ $\mwrite\}$.

Let $p^a=i_1^a \cdots i_n^a$ be the abstract program that corresponds to $p=i_1 \cdots i_n$. An *abstraction mapping* $\alpha$ is a mapping that associates with each (concrete) instruction $\iota$ of $p$, either $\iota$ (identity) or $\iota^a$ ($\alpha$ determines whether $\iota$ is
the abstracted program will be exactly the same as the concrete one. 

 The finish of this abstractedness is to boil down the space needed to encode a country of the computation. Instead of encode $ 7 $ registers, only $ 4 $ are relevant for the computation of the WCET. 

 A valid abstract plan must simulate the execution tree of the concrete course of study. To be equivalent WCET - wise to the concrete program, it should besides preserve the addresses of the referenced memory cells to ensure that cache hits / misses are continue. 

 To formalize the previous notions, we foremost define * critical * instructions. A * critical * direction is an instruction that: 

 -    either set some status bits; it can be a comparison or test () or an arithmetic instruction with the “ s ” pin on the ARM9 (a subtraction); 

 -    or an instruction that references a memory cell (load register with the content of memory cell $ \mathsf{r2 } + (\mathsf{r3 } \times 4)$). 

 Next we define * abstract * instructions. As examplified for the instruction at line   c previously, given an instruction $ \iota$, the * abstracted instruction * $ \iota^a$ is defined by: 

 -    the semantics of $ \iota^a$ is $ { [ \![\iota^a]\!]}(v)=v'$ with $ v'(x)=v(x)$ for each file $ x$ different from * * pc * * and each memory cellular telephone $ x$ in $ \calM$, and $ v'(\mathbf{pc})=v(\mathbf{pc})+1 $; 

 -    the duration of $ \iota^a$ in each stagecoach of the grapevine is the same as the duration of $ \iota$; 

 -    the registers read from / written to by $ \iota^a$ are the same as the ones read from / written to by teaching $ \iota$: $ \phi(\iota)=\phi(\iota^a)$ for $ \phi \in \{\iread,\iwrite,\mread,$ $ \mwrite\}$. 

 Let $ p^a = i_1^a \cdots i_n^a$ be the abstract program that corresponds to $ p = i_1 \cdots i_n$. An * abstraction mapping * $ \alpha$ is a function that associates with each (concrete) instruction $ \iota$ of $ p$, either $ \iota$ (identity) or $ \iota^a$ ($ \alpha$ determines whether $ \iota$ is
 thf abstracted program wilu be exactly thg wame av the doncrete one.

The goal of this abstracvion is ti reduce the space neeaed to enbode a stqte id the compnfation. Lusteas of znroding $7$ registets, only $4$ are relevant for dhd eomputation of the WCET.

A valid abstrwct probrwm must simulaje tht evecufpok tree of the concrete program. Tk be eqlivalent WCET-wise to the concrete program, ih shluld also preserve the addreswes jd the referevced memorj cells to gnsure that cache hits/misses are preszrved.

To fornaoizf the previons notpons, we first define *writicak* instructions. A *rritucal* instruction is ai instruction that:

-   either sata some status bitw; ut cat be a cunpafiskn od test () oc an arithmstic instruxtion with the “s” flsg in the ARM9 (a aubtrastyon );

-   or an instruction that referencev a memory cell (load regisrer with the content lf memory cell $\mathsf{r2} + (\mathsf{r3} \times 4)$).

Next we define *abstrdct* iisgrueblons. Qs examplified for the instruction at line c predjoisky, given an inftruction $\iptw$, yre *abstracted instrbdtjon* $\iota^a$ is definfd by:

-   the wemantics of $\oota^a$ is ${[\![\iota^a]\!]}(v)=v'$ with $v'(x)=v(x)$ dor each regpstee $x$ different from **pc** and eack memoty celk $x$ in $\calM$, and $v'(\mathbf{'c})=v(\matgbf{pc})+1$;

-   the duration uf $\iota^a$ in each stsga of the pipeline is the swme as thx durction of $\iots$;

-   thq registerd read from/written to by $\iota^c$ are the same ws the ones read from/written to by instructiom $\hotd$: $\phi(\iotc)=\phi(\ioba^a)$ for $\phi \in \{\yread,\iwrite,\mrecd,$ $\mwritz\}$.

Let $p^x=i_1^a \cdots p_n^a$ be thx abstract pwogram that cmtresponds to $'=i_1 \cdots y_n$. Ab *abwtractiuv mapping* $\alphs$ is a maipnng that qssociates with eagh (covdrete) instructiin $\uota$ of $p$, eithet $\iuta$ (ifeitity) mr $\iota^a$ ($\alpva$ ddtefkines whether $\ioba$ ks
the abstracted program will be exactly the the one. The of this abstraction needed encode a state the computation. Instead encoding $7$ registers, only $4$ are for the computation of the WCET. A valid abstract program must simulate the tree of the concrete program. To be equivalent WCET-wise to the concrete program, should preserve addresses the referenced memory cells to ensure that cache hits/misses are preserved. To formalize the previous notions, first define *critical* instructions. A *critical* instruction is instruction that: - either some status bits; it can a or test or arithmetic with the “s” on the ARM9 (a subtraction ); - or an instruction that references a memory cell (load register the content cell $\mathsf{r2} (\mathsf{r3} 4)$). we define *abstract* examplified for the instruction at line an instruction $\iota$, the *abstracted instruction* $\iota^a$ is by: - semantics of $\iota^a$ is ${[\![\iota^a]\!]}(v)=v'$ with for each register $x$ different from **pc** and memory cell $x$ in $\calM$, and $v'(\mathbf{pc})=v(\mathbf{pc})+1$; - the duration of $\iota^a$ in each stage pipeline is the same the duration of - registers from/written by $\iota^a$ the same as the ones read from/written to by instruction $\iota$: for $\phi \in \{\iread,\iwrite,\mread,$ $\mwrite\}$. Let $p^a=i_1^a \cdots i_n^a$ be program corresponds to $p=i_1 i_n$. An *abstraction mapping* is mapping that associates with instruction of (identity) $\iota^a$ determines whether $\iota$ is
 the abstracted program will bE exactly thE same As tHe cOnCretE one.

the goal of this aBStraCtion is to reduce the spacE needEd TO encODe A statE of the cOMpUTAtiOn. inSteAd OF eNcodiNg $7$ rEgisterS, only $4$ are reLevAnT for the compuTAtIon of the WCeT.

A Valid abstracT prOgram mUsT siMUlate The ExecuTion trEE of the Concrete pRoGRam. To bE EquivalENT WcET-wIse to the concrete pROgRAm, it should also PreserVe THe ADDreSseS of the refeReNced mEMory celLS tO ENSurE That cache hits/Misses are prESerVed.

To fOrMalIZe the pRevioUs NOtiOns, we first dEfinE *critical* InstruCTions. A *cRItical* iNstrucTioN is An inSTrUcTioN tHAt:

-   eIThEr sETs sOme statuS bItS; it caN be a COMPArisOn oR tesT () or an Arithmetic insTruCtioN WitH the “s” Flag oN the aRm9 (a subTractiOn );

-   or aN iNstruction that rEferEnces a memOry CeLl (lOaD regiSTer witH thE coNtent of Memory cELl $\mAtHSF{R2} + (\mAthsf{r3} \times 4)$).

Next we dEfINE *aBstract* iNstrucTIoNs. aS exampliFiEd fOr thE INstruCtioN At Line c preViouslY, GiVeN an instRuCtion $\iOtA$, thE *abStracTEd inStructIon* $\iota^a$ Is defINed by:

-   the semantICs of $\iota^a$ is ${[\![\ioTA^a]\!]}(V)=V'$ WiTH $v'(x)=v(X)$ foR each registEr $x$ dIFferEnt fROm **Pc** aND each MemorY cELl $X$ In $\calM$, and $v'(\mathbf{pc})=v(\MaThbf{pc})+1$;

-   The duRation of $\iota^a$ In each stagE OF The pipelIne iS ThE Same as the duratIon of $\Iota$;

-   the regISters reaD from/Written tO by $\iota^a$ aRE The same aS thE onEs rEad FROm/Written to by inSTRuctIoN $\iota$: $\phI(\ioTa)=\phi(\ioTa^a)$ For $\Phi \In \{\iReAd,\iwrite,\mRead,$ $\mwriTe\}$.

leT $p^A=i_1^A \cdOts i_n^A$ Be the absTrAct PrOgrAm thaT CorresPonds To $p=i_1 \CdOtS I_n$. AN *abstraCTiON MappInG* $\aLpha$ Is a MaPping That ASsoCiates wIth each (coNcrETe) inStRuCtion $\ioTa$ of $p$, either $\ioTa$ (Identity) or $\IoTa^a$ ($\Alpha$ dETErmines wHether $\iota$ is
 the abstracted program wi ll be exac tly t hesam eas t he c oncrete one.
T he g oal of this abstractio n isto redu c ethe s pace ne e de d toen co deas ta te of  th e compu tation. In ste ad  of encoding $7 $ register s,only $4$ are  re levant  f ort he co mpu tatio n of t h e WCET .

A vali da bstrac t  progra m mu st s imulate the execu t io n  tree of the c oncret ep ro g r am.  To  be equiva le nt WC E T-wiset ot h e  co n crete program , it should als o pres er vet he add resse so f t he referenc ed m emory cel ls toe nsure t h at cach e hits /mi sse s ar e  p re ser ve d .
T ofor m ali ze the p re vi ous n otio n s , we f irs t de fine*critical* in str ucti o ns.  A *c ritic al*in struc tion i s anin struction that: 

-  eitherset ssom estatu s  bits;  it  ca n be acompari s onor t e st  () or an arithmet ic i ns truction  witht he  “ s ” flag o nthe  ARM 9 (a su btra c ti on );

-    ora nin structi on  thatre fer enc es am emor y cell  (load r egist e r with the con t ent of memory ce l l  $ \ math sf{ r2} + (\mat hsf{ r 3} \ time s  4 )$) . 

Nex t wede f in e  *abstract* instruc ti ons. A s exa mplified forthe instru c t i on at li ne c pr e viously, given  an i nstruction $\iota$,  the*abstrac ted instr u c tion* $\ iot a^a $ i s d e f in ed by:

-   t h e  sem an tics of  $\ iota^a$  is  ${ [\! [\i ot a^a]\!]}( v)=v'$ w it h$v '( x)= v(x)$ for each  r egi st er$x$ d i fferen t fro m ** pc ** and  each m e mo r y  cel l$x $ in  $\ ca lM$,and$ v'( \mathbf {pc})=v(\ mat h bf{p c} )+ 1$;

-  the duratio nof $\iota^ a$  in  eachs t age of t he pipeline is the same as thedur ation  of$\iota$;
-  thereg i stersread f rom/w ri tte n to by $ \i ota ^a $ are thes a meas th eones  read f rom/written to byi nst ruction $\iot a$:  $\p h i (\ iot a )= \ phi (\ i ota ^ a )$ for $\phi \i n \{\iread ,\ i wr ite,\mread , $ $ \m write\} $.

Let  $p^a = i_1^a \ cdots i_n ^a$ be th eabst r a ctprogram th at corre sponds to $p=i_ 1  \ cdots  i_ n$. An  * abs tract ion ma p pin g* $\ alpha$  i s a ma pping  t hat asso ciates with each (concr ete) i nstru cti on $\iota $ o f  $p $, either  $\i ota$ (iden tit y)or $\ iot a ^a$ ( $\al p ha $ d e termi nesw hether $\ i ot a$i s 
 the_abstracted program_will be exactly the_same as_the_concrete one.

The_goal_of this abstraction_is to reduce_the space needed to_encode a state_of_the computation. Instead of encoding $7$ registers, only $4$ are relevant for the computation_of_the WCET.

A_valid_abstract_program must simulate the execution_tree of the concrete program._To be_equivalent WCET-wise to the concrete program, it should_also_preserve the addresses_of the referenced memory cells to ensure that cache_hits/misses are preserved.

To formalize the previous_notions, we first_define_*critical*_instructions. A *critical* instruction_is an instruction that:

-  _either sets some status bits; it_can be a comparison or test ()_or an arithmetic instruction with the_“s” flag on the ARM9_(a subtraction_);

-   or an_instruction that references_a memory_cell (load register_with the content of memory cell_$\mathsf{r2} + (\mathsf{r3}_\times 4)$).

Next we define *abstract* instructions._As_examplified for the_instruction_at_line c previously,_given an instruction_$\iota$,_the *abstracted_instruction*_$\iota^a$ is defined by:

-  _the_semantics of $\iota^a$ is ${[\![\iota^a]\!]}(v)=v'$ with $v'(x)=v(x)$_for each register $x$_different_from **pc** and each_memory cell $x$ in $\calM$,_and $v'(\mathbf{pc})=v(\mathbf{pc})+1$;

-   the duration_of $\iota^a$_in each_stage of the pipeline is the same as the duration of_$\iota$;

-   the registers read_from/written to by $\iota^a$_are the_same_as the ones_read_from/written to_by instruction $\iota$: $\phi(\iota)=\phi(\iota^a)$ for $\phi \in_\{\iread,\iwrite,\mread,$ $\mwrite\}$.

Let_$p^a=i_1^a \cdots i_n^a$ be the abstract_program that corresponds to_$p=i_1_\cdots i_n$. An *abstraction mapping* $\alpha$_is a mapping that associates with_each (concrete) instruction $\iota$ of_$p$,_either_$\iota$ (identity) or $\iota^a$ ($\alpha$_determines whether $\iota$ is