Step * 1 of Lemma identity-record+-update


1. Atom ⟶ 𝕌'
2. record(x.T[x]) ⟶ 𝕌'
3. Atom
4. self:record(x.T[x]) ⋂ x:Atom ⟶ if =a then B[self] else Top fi 
5. r ∈ record(x.T[x])
6. r ∈ x:Atom ⟶ if =a then B[r] else Top fi 
7. Atom
⊢ if =a then r.x else fi  (r z) ∈ B[λz.if =a then r.x else fi ]
BY
((BoolCase ⌜=a x⌝⋅ THENA Auto)
   THEN Try ((RevHypSubst' (-1) THEN Unfold `record-select` 0))
   THEN Fold `member` 0
   THEN Fold `record-update` 0
   THEN DoSubsume
   THEN (Subst' =a tt THENA Auto)
   THEN Reduce 0
   THEN Try ((Fold `record-select` THEN RWO "identity-record-update" 0))
   THEN Auto) }


Latex:


Latex:

1.  T  :  Atom  {}\mrightarrow{}  \mBbbU{}'
2.  B  :  record(x.T[x])  {}\mrightarrow{}  \mBbbU{}'
3.  z  :  Atom
4.  r  :  self:record(x.T[x])  \mcap{}  x:Atom  {}\mrightarrow{}  if  x  =a  z  then  B[self]  else  Top  fi 
5.  r  \mmember{}  record(x.T[x])
6.  r  \mmember{}  x:Atom  {}\mrightarrow{}  if  x  =a  z  then  B[r]  else  Top  fi 
7.  x  :  Atom
\mvdash{}  if  z  =a  x  then  r.x  else  r  z  fi    =  (r  z)


By


Latex:
((BoolCase  \mkleeneopen{}z  =a  x\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  Try  ((RevHypSubst'  (-1)  0  THEN  Unfold  `record-select`  0))
  THEN  Fold  `member`  0
  THEN  Fold  `record-update`  0
  THEN  DoSubsume
  THEN  (Subst'  z  =a  z  \msim{}  tt  0  THENA  Auto)
  THEN  Reduce  0
  THEN  Try  ((Fold  `record-select`  0  THEN  RWO  "identity-record-update"  0))
  THEN  Auto)




Home Index