Skip to content

[pi] variable substitution of pi-calculus agents (and residuals) - #1546

Merged
mn200 merged 1 commit into
HOL-Theorem-Prover:developfrom
binghe:pi_subst
Jul 6, 2025
Merged

[pi] variable substitution of pi-calculus agents (and residuals)#1546
mn200 merged 1 commit into
HOL-Theorem-Prover:developfrom
binghe:pi_subst

Conversation

@binghe

@binghe binghe commented Jul 6, 2025

Copy link
Copy Markdown
Member

Hi,

Finally the variable substitution of pi-calculus agents (and transition residuals) is done. The following two theorems fully character the behavior of variable substitution (string -> string):

[pi_sub_thm]
⊢ (∀u E. [E/u] Nil = Nil) ∧ (∀u E t. [E/u] (Tau t) = Tau ([E/u] t)) ∧
  (∀v u E e t.
     v ≠ u ∧ v ≠ E ⇒ [E/u] (Input e v t) = Input ([E/u] e) v ([E/u] t)) ∧
  (∀u E a b t. [E/u] (Output a b t) = Output ([E/u] a) ([E/u] b) ([E/u] t)) ∧
  (∀u E a b t. [E/u] (Match a b t) = Match ([E/u] a) ([E/u] b) ([E/u] t)) ∧
  (∀u E a b t. [E/u] (Mismatch a b t) = Mismatch ([E/u] a) ([E/u] b) ([E/u] t)) ∧
  (∀u E t t'. [E/u] (t' + t) = [E/u] t' + [E/u] t) ∧
  (∀u E t t'. [E/u] (t' || t) = [E/u] t' || [E/u] t) ∧
  (∀v u E t. v ≠ u ∧ v ≠ E ⇒ [E/u] (Res v t) = Res v ([E/u] t)) ∧
  ∀u E x y t.
    tpm [(x,y)] ([E/u] t) = [swapstr x y E/swapstr x y u] (tpm [(x,y)] t)

[residual_sub_thm]
⊢ (∀u E t. [E/u] (TauR t) = TauR ([E/u] t)) ∧
  (∀v u E e t.
     v ≠ u ∧ v ≠ E ⇒ [E/u] (InputS e v t) = InputS ([E/u] e) v ([E/u] t)) ∧
  (∀v u E e t.
     v ≠ u ∧ v ≠ E ⇒
     [E/u] (BoundOutput e v t) = BoundOutput ([E/u] e) v ([E/u] t)) ∧
  (∀u E a b t.
     [E/u] (FreeOutput a b t) = FreeOutput ([E/u] a) ([E/u] b) ([E/u] t)) ∧
  ∀u E x y t.
    rpm [(x,y)] ([E/u] t) = [swapstr x y E/swapstr x y u] (rpm [(x,y)] t)

As uaual, the API function prove_alpha_fcbhyp (in nomdatatype) has been generalised: one of its argument (ppm) was a term, now is a list of terms (ppms):

  val prove_alpha_fcbhyp : {ppms :term list, alphas: thm list, rwts: thm list} -> thm -> thm

All existing function calls of it are modified to fit the new type of this function.

--Chun

@mn200

mn200 commented Jul 6, 2025

Copy link
Copy Markdown
Member

Very nice! Thanks.

@mn200
mn200 merged commit ad7af00 into HOL-Theorem-Prover:develop Jul 6, 2025
4 checks passed
@binghe
binghe deleted the pi_subst branch July 8, 2025 00:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants