Rewriting Part 6. Completion of Term Rewriting Systems Temur Kutsia - - PowerPoint PPT Presentation

rewriting
SMART_READER_LITE
LIVE PREVIEW

Rewriting Part 6. Completion of Term Rewriting Systems Temur Kutsia - - PowerPoint PPT Presentation

Rewriting Part 6. Completion of Term Rewriting Systems Temur Kutsia RISC, JKU Linz Word problem Recall the word problem: Given: A set of identities E and two terms s and t . Decide: s E t holds or not. Word problem Recall the word


slide-1
SLIDE 1

Rewriting

Part 6. Completion of Term Rewriting Systems Temur Kutsia RISC, JKU Linz

slide-2
SLIDE 2

Word problem

Recall the word problem: Given: A set of identities E and two terms s and t. Decide: s ≈E t holds or not.

slide-3
SLIDE 3

Word problem

Recall the word problem: Given: A set of identities E and two terms s and t. Decide: s ≈E t holds or not.

◮ The problem is undecidable for an arbitrary E.

slide-4
SLIDE 4

Word problem

Recall the word problem: Given: A set of identities E and two terms s and t. Decide: s ≈E t holds or not.

◮ The problem is undecidable for an arbitrary E. ◮ Try to construct a decision procedure for a given finite E.

slide-5
SLIDE 5

Word problem

Recall the word problem: Given: A set of identities E and two terms s and t. Decide: s ≈E t holds or not.

◮ The problem is undecidable for an arbitrary E. ◮ Try to construct a decision procedure for a given finite E. ◮ When E is finite and →E is convergent, the word problem is

decidable.

slide-6
SLIDE 6

First Approach

Construction of a decision procedure.

slide-7
SLIDE 7

First Approach

Construction of a decision procedure. Show Termination: Try to find a reduction order > which orients all identities in E. If this succeeds, consider the TRS R := {s → t | s ≈ t ∈ E or t ≈ s ∈ E, and s > t}, and continue with this system in the next step. Otherwise fail.

slide-8
SLIDE 8

First Approach

Construction of a decision procedure. Show Termination: Try to find a reduction order > which orients all identities in E. If this succeeds, consider the TRS R := {s → t | s ≈ t ∈ E or t ≈ s ∈ E, and s > t}, and continue with this system in the next step. Otherwise fail. Show Confluence: Decide confluence of the terminating TRS R, by computing all critical pairs between rules in R and testing them for confluence. If this step succeeds, the rewrite relation →R yields a decision procedure for the word problem for E. Otherwise fail.

slide-9
SLIDE 9

Example When The Simple Approach Succeeds

Example 6.1

Let E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}.

slide-10
SLIDE 10

Example When The Simple Approach Succeeds

Example 6.1

Let E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}. Show Termination: Use the lpo >lpo induced by + > s. We get a terminating term rewriting system R := {x + 0 → x, x + s(y) → s(x + y)}.

slide-11
SLIDE 11

Example When The Simple Approach Succeeds

Example 6.1

Let E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}. Show Termination: Use the lpo >lpo induced by + > s. We get a terminating term rewriting system R := {x + 0 → x, x + s(y) → s(x + y)}. Show Confluence: It is also confluent since there are no critical pairs.

slide-12
SLIDE 12

Example When The Simple Approach Does Not Succeed

Example 6.2

Let E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}.

slide-13
SLIDE 13

Example When The Simple Approach Does Not Succeed

Example 6.2

Let E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}. Show Termination: Now we use the lpo >lpo induced by s > +. We get a terminating term rewriting system R := {x + 0 → x, s(x + y) → x + s(y)}.

slide-14
SLIDE 14

Example When The Simple Approach Does Not Succeed

Example 6.2

Let E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}. Show Termination: Now we use the lpo >lpo induced by s > +. We get a terminating term rewriting system R := {x + 0 → x, s(x + y) → x + s(y)}. Show Confluence: It is not confluent since the following critical pair is not joinable: s(x + 0) x + s(0) s(x)

slide-15
SLIDE 15

Main Ideas Behind Completion

◮ If the critical pair s, t of R is not joinable, then there are

distinct normal forms ˆ s, ˆ t of s, t.

◮ Adding ˆ

s → ˆ t or ˆ t → ˆ s does not change the equational theory generated by R, because ˆ s ≈ ˆ t is an equational consequence

  • f R.

◮ In the extended system, s, t is joinable. ◮ To obtain a terminating new system, we need ˆ

s > ˆ t or ˆ t > ˆ s

slide-16
SLIDE 16

The Basic Completion Procedure

slide-17
SLIDE 17

The Basic Completion Procedure

The procedure shows three different types of behavior, depending

  • n particular input E and >:
  • 1. It may terminate with failure because one of the nontrivial

input identities can not be ordered using >, or the normal forms of the terms in one of the critical pairs are distinct and can not be oriented by using >. Not much is gained. One can restart the procedure with a different reduction order.

slide-18
SLIDE 18

The Basic Completion Procedure

The procedure shows three different types of behavior, depending

  • n particular input E and >:
  • 1. It may terminate with failure because one of the nontrivial

input identities can not be ordered using >, or the normal forms of the terms in one of the critical pairs are distinct and can not be oriented by using >. Not much is gained. One can restart the procedure with a different reduction order.

  • 2. It may terminate successfully with output Rn because in nth

step of the iteration all critical pairs are joinable. Rn is a finite convergent system equivalent to E. It can be used to decide the word problem for E.

slide-19
SLIDE 19

The Basic Completion Procedure

The procedure shows three different types of behavior, depending

  • n particular input E and >:
  • 1. It may terminate with failure because one of the nontrivial

input identities can not be ordered using >, or the normal forms of the terms in one of the critical pairs are distinct and can not be oriented by using >. Not much is gained. One can restart the procedure with a different reduction order.

  • 2. It may terminate successfully with output Rn because in nth

step of the iteration all critical pairs are joinable. Rn is a finite convergent system equivalent to E. It can be used to decide the word problem for E.

  • 3. It may run forever since infinitely many new rules are
  • generated. In this case, R∞ :=

i≥0 Ri is an infinite

convergent system that is equivalent to E. Yields a semidecision procedure for ≈E.

slide-20
SLIDE 20

Example: The Procedure Terminates Successfully

Input: E := {f(f(x)) ≈ g(x)}, LPO >lpo induced by f > g.

slide-21
SLIDE 21

Example: The Procedure Terminates Successfully

Input: E := {f(f(x)) ≈ g(x)}, LPO >lpo induced by f > g. R0 := {f(f(x)) → g(x)} has a non-joinable critical pair: f(f(f(x))) f(g(x)) g(f(x))

slide-22
SLIDE 22

Example: The Procedure Terminates Successfully

Input: E := {f(f(x)) ≈ g(x)}, LPO >lpo induced by f > g. R0 := {f(f(x)) → g(x)} has a non-joinable critical pair: f(f(f(x))) f(g(x)) g(f(x)) R1 := {f(f(x)) → g(x), f(g(x)) → g(f(x))} is confluent. R2 = R1.

slide-23
SLIDE 23

Example: The Procedure Terminates Successfully

Input: E := {f(f(x)) ≈ g(x)}, LPO >lpo induced by f > g. R0 := {f(f(x)) → g(x)} has a non-joinable critical pair: f(f(f(x))) f(g(x)) g(f(x)) R1 := {f(f(x)) → g(x), f(g(x)) → g(f(x))} is confluent. R2 = R1. Output: R2 := {f(f(x)) → g(x), f(g(x)) → g(f(x))}.

slide-24
SLIDE 24

Example: The Procedure Terminates with Failure

Input: E := {x ∗ (y + z) ≈ (x ∗ y) + (x ∗ z), (u + v) ∗ w ≈ (u ∗ w) + (v ∗ w)}, LPO >lpo induced by ∗ > +.

slide-25
SLIDE 25

Example: The Procedure Terminates with Failure

Input: E := {x ∗ (y + z) ≈ (x ∗ y) + (x ∗ z), (u + v) ∗ w ≈ (u ∗ w) + (v ∗ w)}, LPO >lpo induced by ∗ > +. R0 := {x ∗ (y + z) → (x ∗ y) + (x ∗ z), (u + v) ∗ w → (u ∗ w) + (v ∗ w)} has a non-joinable critical pair: (u + v) ∗ (y + z) ((u + v) ∗ y) + ((u + v) ∗ z) (u ∗ (y + z)) + (v ∗ (y + z)) ((u ∗ y)+(v ∗ y))+((u ∗ z)+(v ∗ z)) ((u ∗ y)+(u ∗ z))+((v ∗ y)+(v ∗ z)) = > < ∗ ∗

slide-26
SLIDE 26

Example: The Procedure Terminates with Failure

Input: E := {x ∗ (y + z) ≈ (x ∗ y) + (x ∗ z), (u + v) ∗ w ≈ (u ∗ w) + (v ∗ w)}, LPO >lpo induced by ∗ > +. R0 := {x ∗ (y + z) → (x ∗ y) + (x ∗ z), (u + v) ∗ w → (u ∗ w) + (v ∗ w)} has a non-joinable critical pair: (u + v) ∗ (y + z) ((u + v) ∗ y) + ((u + v) ∗ z) (u ∗ (y + z)) + (v ∗ (y + z)) ((u ∗ y)+(v ∗ y))+((u ∗ z)+(v ∗ z)) ((u ∗ y)+(u ∗ z))+((v ∗ y)+(v ∗ z)) = > < ∗ ∗ The procedure fails.

slide-27
SLIDE 27

Example: The Procedure Does Not Terminate

Input: E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}, LPO >lpo induced by s > +.

slide-28
SLIDE 28

Example: The Procedure Does Not Terminate

Input: E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}, LPO >lpo induced by s > +. R0 := {x + 0 → x, s(x + y) → x + s(y)}. R1 := R0 ∪ {x + s(0) → s(x)}.

slide-29
SLIDE 29

Example: The Procedure Does Not Terminate

Input: E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}, LPO >lpo induced by s > +. R0 := {x + 0 → x, s(x + y) → x + s(y)}. R1 := R0 ∪ {x + s(0) → s(x)}. R1 is not confluent since the following critical pair is not joinable: s(x + s(0)) x + s(s(0)) s(s(x))

slide-30
SLIDE 30

Example: The Procedure Does Not Terminate

Input: E := {x + 0 ≈ x, x + s(y) ≈ s(x + y)}, LPO >lpo induced by s > +. R0 := {x + 0 → x, s(x + y) → x + s(y)}. R1 := R0 ∪ {x + s(0) → s(x)}. R1 is not confluent since the following critical pair is not joinable: s(x + s(0)) x + s(s(0)) s(s(x)) At each step of the iteration a new rule of the form x + sn(0) → sn(0) is

  • generated. The procedure does not stop.
slide-31
SLIDE 31

Drawbacks of the Basic Completion

◮ In practice, the basic completion procedure generates a huge

number of rules.

◮ All of them should be taken into account when computing

critical pairs.

◮ It makes both time and space requirement often unacceptably

high.

slide-32
SLIDE 32

Addressing the Drawbacks

◮ All implementations of completion “simplify” rules by

reducing them with the help of other rules.

◮ If both sides of a rule reduce to the same term, the rule can

be removed.

◮ Yields smaller rules. ◮ Improved completion procedure.

Example 6.3

R := {f(f(x, y), z) → f(x, f(y, z)), f(x, f(y, z)) → f(x, z)}

slide-33
SLIDE 33

Addressing the Drawbacks

◮ All implementations of completion “simplify” rules by

reducing them with the help of other rules.

◮ If both sides of a rule reduce to the same term, the rule can

be removed.

◮ Yields smaller rules. ◮ Improved completion procedure.

Example 6.3

R := {f(f(x, y), z) → f(x, f(y, z)), f(x, f(y, z)) → f(x, z)} f(f(x, y), z) f(x, f(y, z)) f(x, z)

slide-34
SLIDE 34

Addressing the Drawbacks

◮ All implementations of completion “simplify” rules by

reducing them with the help of other rules.

◮ If both sides of a rule reduce to the same term, the rule can

be removed.

◮ Yields smaller rules. ◮ Improved completion procedure.

Example 6.3

R := {f(f(x, y), z) → f(x, f(y, z)), f(x, f(y, z)) → f(x, z)} f(f(x, y), z) f(x, f(y, z)) f(x, z) Simpler rules: R = {f(f(x, y), z) → f(x, z), f(x, f(y, z)) → f(x, z)}.

slide-35
SLIDE 35

An Improved Completion Procedure

◮ Described as a set of inference rules. ◮ Specific completion procedure is obtained by fixing a strategy

for application of the rules.

◮ Works on pairs (E, R), where E is a set of identities and R is

a set of rewrite rules.

◮ E contains input identities and not-yet-oriented critical pairs

with the input reduction ordering >.

◮ R is a set of rewrite rules oriented with input ordering >. ◮ Goal: To transform an initial pair (E0, ∅) into (∅, R) such that

R is convergent and equivalent to E.

slide-36
SLIDE 36

An Improved Completion Procedure

slide-37
SLIDE 37

An Improved Completion Procedure

◮ In the L-Simplify-rule, s ⊐

− →R u says that s is reduced by a rule l → r ∈ R such that l can not be reduced by s → t.

slide-38
SLIDE 38

An Improved Completion Procedure

◮ In the L-Simplify-rule, s ⊐

− →R u says that s is reduced by a rule l → r ∈ R such that l can not be reduced by s → t.

◮ If R := {f(x, x) → x, f(x, y) → x}, then L-Simplify-rule

can be applied to f(x, x) → x.

slide-39
SLIDE 39

An Improved Completion Procedure

◮ In the L-Simplify-rule, s ⊐

− →R u says that s is reduced by a rule l → r ∈ R such that l can not be reduced by s → t.

◮ If R := {f(x, x) → x, f(x, y) → x}, then L-Simplify-rule

can be applied to f(x, x) → x.

◮ If R := {f(x, y) → x, f(x, y) → y}, then L-Simplify-rule

can not be applied.

slide-40
SLIDE 40

An Improved Completion Procedure

◮ In the L-Simplify-rule, s ⊐

− →R u says that s is reduced by a rule l → r ∈ R such that l can not be reduced by s → t.

◮ If R := {f(x, x) → x, f(x, y) → x}, then L-Simplify-rule

can be applied to f(x, x) → x.

◮ If R := {f(x, y) → x, f(x, y) → y}, then L-Simplify-rule

can not be applied.

◮ Notation: (E, R) ⊢C (E′, R′) means that (E, R) can be

transformed into (E′, R′) by one of the inference rules.

slide-41
SLIDE 41

Termination

Lemma 6.1 (Termination)

If R ⊆> and (E, R) ⊢C (E′, R′), then R′ ⊆ >.

Proof.

All rules are oriented wrt the reduction order >.

slide-42
SLIDE 42

Soundness

Lemma 6.2 (Soundness)

If (E1, R1) ⊢C (E2, R2), then ≈E1∪R1 = ≈E2∪R2.

slide-43
SLIDE 43

Soundness

Lemma 6.2 (Soundness)

If (E1, R1) ⊢C (E2, R2), then ≈E1∪R1 = ≈E2∪R2.

Proof.

Trivial for the first three rules.

slide-44
SLIDE 44

Soundness

Lemma 6.2 (Soundness)

If (E1, R1) ⊢C (E2, R2), then ≈E1∪R1 = ≈E2∪R2.

Proof.

Trivial for the first three rules. For Simplify-Identity, E1 = E ∪ {s ≈ t}, E2 = E ∪ {u ≈ t}, R1 = R = R2, and s →R u. We have u ≈E1∪R1 t, which implies ≈E2∪R2⊆≈E1∪R1. Conversely, u ≈ t ∈ E2, s →R u, and R = R2 imply that s ≈E2∪R2 t and, hence, ≈E1∪R1⊆≈E2∪R2.

slide-45
SLIDE 45

Soundness

Lemma 6.2 (Soundness)

If (E1, R1) ⊢C (E2, R2), then ≈E1∪R1 = ≈E2∪R2.

Proof.

Trivial for the first three rules. For Simplify-Identity, E1 = E ∪ {s ≈ t}, E2 = E ∪ {u ≈ t}, R1 = R = R2, and s →R u. We have u ≈E1∪R1 t, which implies ≈E2∪R2⊆≈E1∪R1. Conversely, u ≈ t ∈ E2, s →R u, and R = R2 imply that s ≈E2∪R2 t and, hence, ≈E1∪R1⊆≈E2∪R2. For R-Simplify, we have E1 = E = E2, R1 = R ∪ {s → t}, R2 = R ∪ {s → u}, and t →R u. s → t ∈ R1, t →R u, and R ⊆ R1 imply s ≈E1∪R1 u. s → u ∈ R2, t →R u, and R ⊆ R2 imply s ≈E2∪R2 u. Hence, ≈E1∪R1 = ≈E2∪R2.

slide-46
SLIDE 46

Soundness

Lemma 6.2 (Soundness)

If (E1, R1) ⊢C (E2, R2), then ≈E1∪R1 = ≈E2∪R2.

Proof.

Trivial for the first three rules. For Simplify-Identity, E1 = E ∪ {s ≈ t}, E2 = E ∪ {u ≈ t}, R1 = R = R2, and s →R u. We have u ≈E1∪R1 t, which implies ≈E2∪R2⊆≈E1∪R1. Conversely, u ≈ t ∈ E2, s →R u, and R = R2 imply that s ≈E2∪R2 t and, hence, ≈E1∪R1⊆≈E2∪R2. For R-Simplify, we have E1 = E = E2, R1 = R ∪ {s → t}, R2 = R ∪ {s → u}, and t →R u. s → t ∈ R1, t →R u, and R ⊆ R1 imply s ≈E1∪R1 u. s → u ∈ R2, t →R u, and R ⊆ R2 imply s ≈E2∪R2 u. Hence, ≈E1∪R1 = ≈E2∪R2. For L-Simplify the proof is similar.

slide-47
SLIDE 47

Completion Procedure

Definition 6.1 (Completion Procedure)

A completion procedure is a program that accepts as input a finite set of identities and a reduction order >, and uses the inference rules to generate a (finite or infinite) sequence (E0, R0) ⊢C (E1, R1) ⊢C (E2, R2) ⊢C (E3, R3) ⊢C · · · , where R0 := ∅. The sequence is called a run of the procedure on input E0 and >.

slide-48
SLIDE 48

Completion Procedure

◮ To treat finite and infinite runs simultaneously, we extend

every finite run (E0, R0) ⊢C · · · ⊢C (En, Rn) to an infinite one by setting (En+i, Rn+i) := (En, Rn) for all i ≥ 1.

slide-49
SLIDE 49

Completion Procedure

◮ To treat finite and infinite runs simultaneously, we extend

every finite run (E0, R0) ⊢C · · · ⊢C (En, Rn) to an infinite one by setting (En+i, Rn+i) := (En, Rn) for all i ≥ 1.

◮ Result of the run: persistent identities and rules:

Eω :=

  • i≥0
  • j≥i

Ej and Rω :=

  • i≥0
  • j≥i

Rj.

slide-50
SLIDE 50

Completion Procedure

◮ To treat finite and infinite runs simultaneously, we extend

every finite run (E0, R0) ⊢C · · · ⊢C (En, Rn) to an infinite one by setting (En+i, Rn+i) := (En, Rn) for all i ≥ 1.

◮ Result of the run: persistent identities and rules:

Eω :=

  • i≥0
  • j≥i

Ej and Rω :=

  • i≥0
  • j≥i

Rj.

◮ If the run is finite, then Eω = En and Rω = Rn.

slide-51
SLIDE 51

Completion Procedure

◮ To treat finite and infinite runs simultaneously, we extend

every finite run (E0, R0) ⊢C · · · ⊢C (En, Rn) to an infinite one by setting (En+i, Rn+i) := (En, Rn) for all i ≥ 1.

◮ Result of the run: persistent identities and rules:

Eω :=

  • i≥0
  • j≥i

Ej and Rω :=

  • i≥0
  • j≥i

Rj.

◮ If the run is finite, then Eω = En and Rω = Rn. ◮ If the run is infinite, persistent identities (rules) are those that

belong to some Ei (Ri) and are never removed in later inference steps.

slide-52
SLIDE 52

Success, Failure, Correctness

Definition 6.2 (Success, Failure, Correctness)

A run on input E0 of a completion procedure

◮ succeeds iff Eω = ∅ and Rω is convergent and equivalent to

E0,

◮ fails iff Eω = ∅, ◮ is correct iff every run that does not fail succeeds.

slide-53
SLIDE 53

Success, Failure, Correctness

For the basic completion procedure,

◮ failure occurs if an input identity can not be oriented, or the

normal forms of a critical pair are distinct (can not be removed by Delete) and can not be oriented using >.

◮ The other two cases (terminates successfully, does not

terminate) are successful in terms of Definition 6.2.

slide-54
SLIDE 54

Success, Failure, Correctness

An arbitrary completion procedure may also have infinite failing runs.

Example 6.4

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), f(g(f(x))) ≈ f(g(x))} >lpo induced by g > h > f > a. The procedure generates an infinite run with Eω = {f(x) ≈ f(y)} Rω = {h(x, y) → f(x), h(x, y) → f(y)}∪ {fgnf(x) → fgn(x) | n ≥ 1}.

slide-55
SLIDE 55

Success, Failure, Correctness

◮ It makes sense not to terminate with failure if a reduced and

nonorientable identity is encountered.

◮ One simply defers the orientation of this identity until new

rules are obtained.

◮ If the new set of rules allows one to simplify the identity to an

  • rientable or trivial one, then one can apply Orient or

Delete.

◮ Otherwise, the treatment of this identity is deferred again.

slide-56
SLIDE 56

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a.

slide-57
SLIDE 57

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. Apply Orient 4 times: E4 = ∅ R4 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a}

slide-58
SLIDE 58

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. Apply Orient 4 times: E4 = ∅ R4 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a} Apply Deduce twice: E6 = {f(x) ≈ f(y), h(x, y) ≈ a} R6 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a}

slide-59
SLIDE 59

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E6 = {f(x) ≈ f(y), h(x, y) ≈ a} R6 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a}

slide-60
SLIDE 60

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E6 = {f(x) ≈ f(y), h(x, y) ≈ a} R6 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a} Apply Orient: E7 = {f(x) ≈ f(y)} R7 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a, h(x, y) → a}

slide-61
SLIDE 61

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E7 = {f(x) ≈ f(y)} R7 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a, h(x, y) → a}

slide-62
SLIDE 62

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E7 = {f(x) ≈ f(y)} R7 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a, h(x, y) → a} Apply Deduce: (The basic completion would fail here, since the critical pair f(x) ≈ f(y) is unoriantable.) E8 = {f(x) ≈ f(y), f(x) ≈ a} R8 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a, h(x, y) → a}

slide-63
SLIDE 63

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E8 = {f(x) ≈ f(y), f(x) ≈ a} R8 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a, h(x, y) → a}

slide-64
SLIDE 64

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E8 = {f(x) ≈ f(y), f(x) ≈ a} R8 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y), g(x, y) → a, h(x, y) → a} Apply Orient E9 = {f(x) ≈ f(y)} R9 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y) g(x, y) → a, h(x, y) → a, f(x) → a}

slide-65
SLIDE 65

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E9 = {f(x) ≈ f(y)} R9 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y) g(x, y) → a, h(x, y) → a, f(x) → a}

slide-66
SLIDE 66

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E9 = {f(x) ≈ f(y)} R9 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y) g(x, y) → a, h(x, y) → a, f(x) → a} Apply Simplify-Identity twice E11 = {a ≈ a} R11 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y) g(x, y) → a, h(x, y) → a, f(x) → a}

slide-67
SLIDE 67

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E11 = {a ≈ a} R11 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y) g(x, y) → a, h(x, y) → a, f(x) → a}

slide-68
SLIDE 68

Success, Failure, Correctness

Example 6.5

Input: E0 = {h(x, y) ≈ f(x), h(x, y) ≈ f(y), g(x, y) ≈ h(x, y), g(x, y) ≈ a} >lpo induced by g > h > f > a. E11 = {a ≈ a} R11 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y) g(x, y) → a, h(x, y) → a, f(x) → a} Apply Delete E12 = ∅ R12 = {h(x, y) → f(x), h(x, y) → f(y), g(x, y) → h(x, y) g(x, y) → a, h(x, y) → a, f(x) → a} Hence, we manage to simplify and delete an unorientable identity.

slide-69
SLIDE 69

Fairness

Definition 6.3 (Fairness)

A run of a completion procedure is called fair iff CP(Rω) ⊆

  • i≥0

Ei. A completion procedure is fair iff every non-failing run is fair.

Theorem 6.1

Every fair completion procedure is correct.