From 87f390ca01b03854700de9064acb473c0c335f54 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 22:54:34 -0500 Subject: [PATCH 01/98] Update ifthen1.pg * In the loadMacros, PGcourse.pl is now the last macro listed. * The line TEXT(beginproblem()); is removed --- Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg b/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg index db4b99438a..05f535bb56 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", +"PGML.pl", "PGcourse.pl", -"PGML.pl" ); ## Create an array of possible statement variations @@ -40,8 +40,6 @@ $pop4 = PopUp(["Choose...",$a], 4); $pop5 = PopUp(["Choose...",$a], 5); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following statement: From 38737217ad79c5daaed567a784d9ae75df87c0b8 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:07:56 -0500 Subject: [PATCH 02/98] Update ifthen1.pg --- Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg b/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg index 05f535bb56..1077dce952 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen1.pg @@ -19,7 +19,7 @@ loadMacros( "PGstandard.pl", "parserPopUp.pl", "PGML.pl", -"PGcourse.pl", +"PGcourse.pl" ); ## Create an array of possible statement variations From 121e4fe81710a93061fef1d7c45e460d9aa29a21 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:15:08 -0500 Subject: [PATCH 03/98] Update ifthen2.pg --- Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen2.pg b/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen2.pg index f28eb992a6..90b2b5e5ed 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen2.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s1_propositions/ifthen2.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible statement variations @@ -40,8 +40,6 @@ $pop4 = PopUp(["Choose...",$a], 4); $pop5 = PopUp(["Choose...",$a], 5); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following statement: From 8e05ef9e1666401ef51dcbfaae12567a549d7ac2 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:16:45 -0500 Subject: [PATCH 04/98] Update prop1.pg --- Contrib/LaTech/DiscreteMath/ch1s1_propositions/prop1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s1_propositions/prop1.pg b/Contrib/LaTech/DiscreteMath/ch1s1_propositions/prop1.pg index da3337bf2c..8411d98d8e 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s1_propositions/prop1.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s1_propositions/prop1.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -38,8 +38,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine the truth value of the following statements. *To discourage random guessing, you must answer all problems correctly to receive credit.* From 6fccac4e62920044ba91942365bbbc37a30c11a3 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:18:17 -0500 Subject: [PATCH 05/98] Update truthtable1.pg --- Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable1.pg b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable1.pg index ca52ae451a..99f125ffb4 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable1.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable1.pg @@ -18,8 +18,8 @@ loadMacros( "PGstandard.pl", "parserPopUp.pl", "niceTables.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -30,8 +30,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Complete the following truth table. From 48375b8bc5bef2deffce203fb5e8a0dffb20a7d5 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:18:53 -0500 Subject: [PATCH 06/98] Update truthtable2.pg --- Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable2.pg b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable2.pg index b5a759d575..298541f61f 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable2.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable2.pg @@ -18,8 +18,8 @@ loadMacros( "PGstandard.pl", "parserPopUp.pl", "niceTables.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -30,8 +30,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Complete the following truth table. From c16bc37ca031f5957c5ba5b8e342c530dff783f3 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:24:04 -0500 Subject: [PATCH 07/98] Update truthtable3.pg --- Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable3.pg b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable3.pg index 2c8a0e9bea..20ad52a0e8 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable3.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable3.pg @@ -18,8 +18,8 @@ loadMacros( "PGstandard.pl", "parserPopUp.pl", "niceTables.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -30,8 +30,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Complete the following truth table. From 3779c40b14b8e2fbfde6ca713de342c3b88c5243 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:25:25 -0500 Subject: [PATCH 08/98] Update truthtable4.pg --- Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable4.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable4.pg b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable4.pg index 53217b390f..4f8f28dd16 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable4.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable4.pg @@ -18,8 +18,8 @@ loadMacros( "PGstandard.pl", "parserPopUp.pl", "niceTables.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -30,8 +30,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Complete the following truth table. From 7e8c3ee242aedc211f2fae96c47a718a91779691 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:27:30 -0500 Subject: [PATCH 09/98] Update truthtable5.pg --- Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable5.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable5.pg b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable5.pg index c82779b04d..c25438f136 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable5.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable5.pg @@ -18,8 +18,8 @@ loadMacros( "PGstandard.pl", "parserPopUp.pl", "niceTables.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -30,8 +30,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Complete the following truth table. From 76edb9a230f4c98d3b26c5c023649aed6068ce40 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:27:57 -0500 Subject: [PATCH 10/98] Update truthtable6.pg --- Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable6.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable6.pg b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable6.pg index bd3a98108c..637ee72a96 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable6.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable6.pg @@ -18,8 +18,8 @@ loadMacros( "PGstandard.pl", "parserPopUp.pl", "niceTables.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -30,8 +30,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Complete the following truth table. From 9347caf67c60affbc436300de0f85c510a9c3228 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:32:04 -0500 Subject: [PATCH 11/98] Update truthtable7.pg --- Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable7.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable7.pg b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable7.pg index 23767520e0..7054f090f9 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable7.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable7.pg @@ -18,8 +18,8 @@ loadMacros( "PGstandard.pl", "parserPopUp.pl", "niceTables.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -30,8 +30,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Complete the following truth table. From c0ed191c4f5b1566a968989b4ee10dcd892e324b Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:33:26 -0500 Subject: [PATCH 12/98] Update truthtable8.pg --- Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable8.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable8.pg b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable8.pg index bcc6e450e1..6eebe9d33c 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable8.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s2_statements/truthtable8.pg @@ -18,8 +18,8 @@ loadMacros( "PGstandard.pl", "parserPopUp.pl", "niceTables.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -30,8 +30,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Complete the following truth table. From b7f5d0b961211ffb555252819f78dc3048f69b5a Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:46:53 -0500 Subject: [PATCH 13/98] Update quantifiers1.pg --- .../LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers1.pg b/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers1.pg index 24e62d451f..bc894cdc51 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers1.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers1.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible statement variations @@ -40,8 +40,6 @@ $pop4 = PopUp(["Choose...",$a], 4); $pop5 = PopUp(["Choose...",$a], 5); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the open statement *C(x,y): "Student x has taken math course y,"* where the domain for [``x``] is all students at your school and the domain for [``y``] is all math courses at your school. From 80c20bc201092bb551bc9eda99b76b7784485a87 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:47:18 -0500 Subject: [PATCH 14/98] Update quantifiers2.pg --- .../LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers2.pg b/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers2.pg index 27aefb3781..8d201565d4 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers2.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers2.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -29,8 +29,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose the domain for all variables is all real numbers. Determine the truth value of the following statements. From d61b63dd70a9384f90545877178328c0b4e45a99 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:47:35 -0500 Subject: [PATCH 15/98] Update quantifiers3.pg --- .../LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers3.pg b/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers3.pg index 5d8a81ff17..23c0211c89 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers3.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s3_quantifiers/quantifiers3.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -29,8 +29,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose the domain for all variables is all real numbers. Determine the truth value of the following statements. From 8d86047e04f639a19b95483e2f39488fb59e41dd Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:48:14 -0500 Subject: [PATCH 16/98] Update roi1.pg --- Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi1.pg b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi1.pg index 8e212191a0..cca2f51cd1 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi1.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi1.pg @@ -20,9 +20,9 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", "niceTables.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible reasons @@ -44,8 +44,6 @@ $popStep1 = PopUp(["Choose...",$a], 2); $popStep23 = PopUp(["Choose...",$a], 9); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following premises and conclusion. From ab02fd5e9eae249871971147273d9bc909e01c0b Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:48:41 -0500 Subject: [PATCH 17/98] Update roi2.pg --- Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi2.pg b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi2.pg index ac548d6ee3..e9b3fb16d3 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi2.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi2.pg @@ -20,9 +20,9 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", "niceTables.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible reasons @@ -44,8 +44,6 @@ $popStep12 = PopUp(["Choose...",$a], 6); $popStep34 = PopUp(["Choose...",$a], 11); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following premises and conclusion. From 5d571688f704176e04828b986d6a158afebc1677 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:49:30 -0500 Subject: [PATCH 18/98] Update roi3.pg --- Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi3.pg b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi3.pg index 622f7932d1..58e27993d2 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi3.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi3.pg @@ -20,9 +20,9 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", "niceTables.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible reasons @@ -49,8 +49,6 @@ $popStep23 = PopUp(["Choose...",$a], 7); $popStep45 = PopUp(["Choose...",$a], 13); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following premises and conclusion. From c9582fd4ab78faa3389551886c78ffa90c976f0c Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:49:54 -0500 Subject: [PATCH 19/98] Update roi4.pg --- Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi4.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi4.pg b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi4.pg index 6e26815e70..197de1fc90 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi4.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi4.pg @@ -20,9 +20,9 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", "niceTables.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible reasons @@ -50,8 +50,6 @@ $popStep45 = PopUp(["Choose...",$a], 12); $popStep67 = PopUp(["Choose...",$a], 15); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following premises and conclusion. From 8036dcac54200ae8399775e19d9e49bd45997b51 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:50:21 -0500 Subject: [PATCH 20/98] Update roi5.pg --- Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi5.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi5.pg b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi5.pg index 9d4b37d28f..ac8f3399a6 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi5.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi5.pg @@ -20,9 +20,9 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", "niceTables.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible reasons @@ -44,8 +44,6 @@ $popStep1 = PopUp(["Choose...",$a], 2); $popStep23 = PopUp(["Choose...",$a], 9); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following premises and conclusion. From 07707e13cd39636e5c3d08b17482cb2e251fd4aa Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:50:47 -0500 Subject: [PATCH 21/98] Update roi6.pg --- Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi6.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi6.pg b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi6.pg index 70e8674e6a..4b72cc2eff 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi6.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s4_rulesofinference/roi6.pg @@ -20,9 +20,9 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", "niceTables.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible reasons @@ -55,8 +55,6 @@ $popStep24 = PopUp(["Choose...",$a], 10); $popStep58 = PopUp(["Choose...",$a], 16); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following premises and conclusion. From 331796b47a753062b4cf610c9481155d2beb09bf Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:51:13 -0500 Subject: [PATCH 22/98] Update proof1.pg --- Contrib/LaTech/DiscreteMath/ch1s5_proofs/proof1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch1s5_proofs/proof1.pg b/Contrib/LaTech/DiscreteMath/ch1s5_proofs/proof1.pg index 369d86bc0e..03628147fb 100644 --- a/Contrib/LaTech/DiscreteMath/ch1s5_proofs/proof1.pg +++ b/Contrib/LaTech/DiscreteMath/ch1s5_proofs/proof1.pg @@ -19,9 +19,9 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", "niceTables.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible reasons @@ -51,8 +51,6 @@ $popStep5 = PopUp(["Choose...",$a], 6); $popStep6 = PopUp(["Choose...",$a], 7); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following statement to be proved. From 343f65ee01e99af131f28c78fbaa1d213699b805 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:51:42 -0500 Subject: [PATCH 23/98] Update set1.pg --- Contrib/LaTech/DiscreteMath/ch2s1_sets/set1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s1_sets/set1.pg b/Contrib/LaTech/DiscreteMath/ch2s1_sets/set1.pg index b74a8c471a..ee92ff4a4a 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s1_sets/set1.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s1_sets/set1.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -29,8 +29,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine the truth value of the following statements. From 6018ef0a6ce03200e3ab0852d19cf64cce6a7934 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:52:10 -0500 Subject: [PATCH 24/98] Update set2.pg --- Contrib/LaTech/DiscreteMath/ch2s1_sets/set2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s1_sets/set2.pg b/Contrib/LaTech/DiscreteMath/ch2s1_sets/set2.pg index d66d6f0658..4cd6b6a37a 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s1_sets/set2.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s1_sets/set2.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -29,8 +29,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine the truth value of the following statements. From 84ec4880df7aaaeaefd8f69779834dc3748ddba8 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:52:32 -0500 Subject: [PATCH 25/98] Update set3.pg --- Contrib/LaTech/DiscreteMath/ch2s1_sets/set3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s1_sets/set3.pg b/Contrib/LaTech/DiscreteMath/ch2s1_sets/set3.pg index d6de17ec44..00fba105bf 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s1_sets/set3.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s1_sets/set3.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserPopUp.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for True/False questions. @@ -29,8 +29,6 @@ $popTrue = PopUp(["Choose...","T","F"], 1); $popFalse = PopUp(["Choose...","T","F"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Recall the following commonly used sets. From 5e1799158e68f6ddb14a59932e72c19a0c9c0122 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:52:52 -0500 Subject: [PATCH 26/98] Update setsize1.pg --- Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize1.pg b/Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize1.pg index a1a9861df4..5b20ff5a85 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize1.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize1.pg @@ -16,8 +16,8 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create parameters and solutions to predetermined problems @@ -39,8 +39,6 @@ $p = random(9,15,1); $size5 = $p - $n5 - 1; ## Display question -TEXT(beginproblem()); - BEGIN_PGML Compute the size of the following sets. From e80f0deb48f02534a0a4ecc8d1747d36dafe5036 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:53:14 -0500 Subject: [PATCH 27/98] Update setsize2.pg --- Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize2.pg b/Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize2.pg index 60fd378ce0..1ee974ef3f 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize2.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s1_sets/setsize2.pg @@ -17,8 +17,8 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create parameters and solutions to predetermined problems @@ -33,8 +33,6 @@ $i = random(7,12,1); $p = $primes[$i-1]; ## Display question -TEXT(beginproblem()); - BEGIN_PGML Compute the size of the following sets. (In this context, [` \mathbb{N} `] is the set of natural numbers, [` \mathbb{Z} `] is the set of integers, [` \mathbb{P} `] is the set of prime numbers, and 0 is not considered a natural number.) From fbe3146d41a32a1fab74223bffe6f781429f91c7 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:53:44 -0500 Subject: [PATCH 28/98] Update setops1.pg --- Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops1.pg b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops1.pg index 8898129334..0730fe6008 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops1.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops1.pg @@ -19,8 +19,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for sets and intervals @@ -49,8 +49,6 @@ $AcapofDcupE = $A->intersect($DcupE); Context()->operators->undefine("-"); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following sets. From 83b7ac61365803f2050d077b18049e6bb9b16583 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:54:04 -0500 Subject: [PATCH 29/98] Update setops2.pg --- Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops2.pg b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops2.pg index 0b316fb0f5..2869091c11 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops2.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops2.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for sets and intervals @@ -53,8 +53,6 @@ $AcapofDcupE = $A->intersect($DcupE); Context()->operators->undefine("-"); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following sets. From 2e3733a97b6b7379e7a50fa564341cfdfb4dcf7f Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:54:35 -0500 Subject: [PATCH 30/98] Update setops3.pg --- Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops3.pg b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops3.pg index a073157d0b..48daa3f5ea 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops3.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops3.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for sets and intervals @@ -54,8 +54,6 @@ $AcrossC = List(Point($n1,$n1),Point($n1,$n2),Point($n1,$n3),Point($n1,$n4),Poin $CcrossA = List(Point($n1,$n1),Point($n1,$n2),Point($n2,$n1),Point($n2,$n2),Point($n3,$n1),Point($n3,$n2),Point($n4,$n1),Point($n4,$n2)); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following sets. From f4af217de57ea45c17e72cc777aa999a213f5da7 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:54:53 -0500 Subject: [PATCH 31/98] Update setops4.pg --- Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops4.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops4.pg b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops4.pg index 21a570646e..c0f153e0c6 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops4.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops4.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserRadioButtons.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible answers @@ -41,8 +41,6 @@ $radio4 = RadioButtons([$a,"None of the other choices."], 3); $radio5 = RadioButtons([$a,"None of the other choices."], 4); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Choose the correct set that corresponds to the operation given below. (The universal set is all real numbers.) From 46310f1ae2e4cc7b219e17e8754c98f22cf03c24 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:13 -0500 Subject: [PATCH 32/98] Update setops5.pg --- Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops5.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops5.pg b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops5.pg index 9b65181c1a..82f2ac3282 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops5.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s2_setoperations/setops5.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "parserRadioButtons.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Create an array of possible answers @@ -38,8 +38,6 @@ $radio3 = RadioButtons([$a,"None of the other choices."], 2); $radio4 = RadioButtons([$a,"None of the other choices."], 3); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Choose the correct set that corresponds to the operation given below. (The universal set is all real numbers.) From 18bb7df452d32baa2714846498a425c4a289d7ee Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:35 -0500 Subject: [PATCH 33/98] Update fun1.pg --- Contrib/LaTech/DiscreteMath/ch2s3_functions/fun1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun1.pg b/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun1.pg index 7b334dd701..c7f2fdc988 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun1.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun1.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for sets and intervals @@ -32,8 +32,6 @@ $ans4 = Interval("[0,1)"); $ans5 = Interval("[-1,1)"); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the function [`` g:\mathbb{R} \to \mathbb{R}``] given by [`` g(x)=\text{floor}(x) ``]. (Recall that the ceiling function rounds a number up to the nearest integer and that [`` \mathbb{R} ``] represents the set of all real numbers.) From 7feb39465ec9d9314b45dabce5c876b6820dd709 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:53 -0500 Subject: [PATCH 34/98] Update fun2.pg --- Contrib/LaTech/DiscreteMath/ch2s3_functions/fun2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun2.pg b/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun2.pg index e4bc62dbe1..fdb8e9f018 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun2.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun2.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for sets and intervals @@ -32,8 +32,6 @@ $ans4 = Interval("(-1,0]"); $ans5 = Interval("(-1,1]"); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the function [`` g:\mathbb{R} \to \mathbb{R}``] given by [`` g(x)=\text{ceil}(x) ``]. (Recall that the ceiling function rounds a number up to the nearest integer and that [`` \mathbb{R} ``] represents the set of all real numbers.) From c93cfa4ebe413db542d8f1d4ac86b756573215a7 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:56:11 -0500 Subject: [PATCH 35/98] Update fun3.pg --- Contrib/LaTech/DiscreteMath/ch2s3_functions/fun3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun3.pg b/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun3.pg index 0be0e0f45f..5d6bf795b6 100644 --- a/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun3.pg +++ b/Contrib/LaTech/DiscreteMath/ch2s3_functions/fun3.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for sets and intervals @@ -32,8 +32,6 @@ $ans4 = Interval("(-1,1)"); $ans5 = Interval("(-infinity,-2]U[2,infinity)"); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the function [`` f:\mathbb{R} \to \mathbb{R}``] given by [`` f(x) = x^{2} ``]. (Recall that [`` \mathbb{R} ``] represents the set of all real numbers.) From cdbca50dd0b0f716e398092a59b732910d463677 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:57:11 -0500 Subject: [PATCH 36/98] Update recrel1.pg --- .../ch3s4_recurrencerelations/recrel1.pg | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel1.pg b/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel1.pg index 1367904a61..e179596ef7 100644 --- a/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel1.pg +++ b/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel1.pg @@ -17,12 +17,14 @@ DOCUMENT(); ## Load libraries -loadMacros("PGstandard.pl", - "MathObjects.pl", - "parserMultiAnswer.pl", - "PGML.pl", - "PGcourse.pl", - "contextFraction.pl"); +loadMacros( +"PGstandard.pl", +"MathObjects.pl", +"parserMultiAnswer.pl", +"PGML.pl", +"contextFraction.pl", +"PGcourse.pl" +); ## Set the context: no decimal input, absolute tolerance, variable "n", and integer test points for answer checker Context("Fraction-NoDecimals"); @@ -71,8 +73,6 @@ $ans = MultiAnswer($y1, $y2)->with( ## Display problem -TEXT(beginproblem()); - BEGIN_PGML For the recurrence relation: @@ -102,4 +102,4 @@ Given the initial conditions [`` a_{0} = [$c] ``] and [`` a_{1} = [$d] ``], the END_PGML_SOLUTION -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From 3427faa1a01880e0e72d52444ef91fa7d0ec58c7 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:57:51 -0500 Subject: [PATCH 37/98] Update recrel2.pg --- .../ch3s4_recurrencerelations/recrel2.pg | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel2.pg b/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel2.pg index 3543247f91..cd0c2bdf33 100644 --- a/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel2.pg +++ b/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel2.pg @@ -17,12 +17,14 @@ DOCUMENT(); ## Load libraries -loadMacros("PGstandard.pl", - "MathObjects.pl", - "parserMultiAnswer.pl", - "PGML.pl", - "PGcourse.pl", - "contextFraction.pl"); +loadMacros( +"PGstandard.pl", +"MathObjects.pl", +"parserMultiAnswer.pl", +"PGML.pl", +"contextFraction.pl", +"PGcourse.pl" +); ## Set the context: no decimal input, absolute tolerance, variable "n", and integer test points for answer checker Context("Fraction-NoDecimals"); @@ -70,8 +72,6 @@ $ans = MultiAnswer($y1, $y2)->with( ## Display problem -TEXT(beginproblem()); - BEGIN_PGML For the recurrence relation: @@ -101,4 +101,4 @@ Given the initial conditions [`` a_{0} = [$c] ``] and [`` a_{1} = [$d] ``], the END_PGML_SOLUTION -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From 61cb7180892121beec2df24b7cc6f0e26f026ace Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:58:26 -0500 Subject: [PATCH 38/98] Update recrel3.pg --- .../ch3s4_recurrencerelations/recrel3.pg | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel3.pg b/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel3.pg index 745e407206..19030f2e42 100644 --- a/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel3.pg +++ b/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel3.pg @@ -16,11 +16,13 @@ DOCUMENT(); ## Load libraries -loadMacros("PGstandard.pl", - "MathObjects.pl", - "PGML.pl", - "PGcourse.pl", - "contextFraction.pl"); +loadMacros( +"PGstandard.pl", +"MathObjects.pl", +"PGML.pl", +"contextFraction.pl", +"PGcourse.pl" +); ## Set the context: no decimal input, absolute tolerance, variable "n", and integer test points for answer checker Context("Fraction-NoDecimals"); @@ -51,8 +53,6 @@ $s = ($A*$n + $B)->reduce; $y = ($c1*$y1 + $s)->reduce; ## Display problem -TEXT(beginproblem()); - BEGIN_PGML For the recurrence relation: @@ -83,4 +83,4 @@ Given the initial condition [`` a_{0} = [$c] ``] and solving for [`` c_{1} ``], END_PGML_SOLUTION -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From ec18e197e58f3814b91a3885a805d0a280344c1a Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:58:53 -0500 Subject: [PATCH 39/98] Update recrel4.pg --- .../ch3s4_recurrencerelations/recrel4.pg | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel4.pg b/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel4.pg index f52e020f72..31be12940c 100644 --- a/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel4.pg +++ b/Contrib/LaTech/DiscreteMath/ch3s4_recurrencerelations/recrel4.pg @@ -16,11 +16,13 @@ DOCUMENT(); ## Load libraries -loadMacros("PGstandard.pl", - "MathObjects.pl", - "PGML.pl", - "PGcourse.pl", - "contextFraction.pl"); +loadMacros( +"PGstandard.pl", +"MathObjects.pl", +"PGML.pl", +"contextFraction.pl", +"PGcourse.pl" +); ## Set the context: no decimal input, absolute tolerance, variable "n", and integer test points for answer checker Context("Fraction-NoDecimals"); @@ -52,8 +54,6 @@ $s = ($A*($p**$n))->reduce; $y = ($c1*$y1 + $s)->reduce; ## Display problem -TEXT(beginproblem()); - BEGIN_PGML For the recurrence relation: @@ -83,4 +83,4 @@ Given the initial condition [`` a_{0} = [$c] ``] and solving for [`` c_{1} ``], END_PGML_SOLUTION -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From b398b4bca53c88b847aadb5bfd4876509ac0b889 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:59:24 -0500 Subject: [PATCH 40/98] Update boolmatrix1.pg --- Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix1.pg b/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix1.pg index 65799a4827..7a270d86ee 100644 --- a/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix1.pg +++ b/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix1.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for matrices @@ -58,8 +58,6 @@ $join = Matrix([ ]); ## Display question -TEXT(beginproblem()); - BEGIN_PGML For the matrices [` A = [$A] `] and [` B = [$B] `], their meet is: From db706c1aaf84cd02c9f4931bf5a743cf99aead86 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:00:00 -0500 Subject: [PATCH 41/98] Update boolmatrix2.pg --- Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg b/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg index 38a18913d6..4588138c36 100644 --- a/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg +++ b/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg @@ -17,8 +17,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for matrices @@ -52,8 +52,6 @@ $prod = Matrix([ ## Display question -TEXT(beginproblem()); - BEGIN_PGML For the matrices [` A = [$A] `] and [` B = [$B] `], their boolean product is: From e6fcd1d6972fe981161dbad1ebf36c50acc4aba8 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:00:30 -0500 Subject: [PATCH 42/98] Update boolmatrixrep1.pg --- .../LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep1.pg b/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep1.pg index 749d8b6f25..edb844bd6c 100644 --- a/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep1.pg +++ b/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep1.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for matrices @@ -59,8 +59,6 @@ $join = Matrix([ ]); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose the matrix representation for relations [` R `] and [` S `] are [` M_{R} = [$A] `] and [` M_{S} = [$B] `]. Compute the matrix represenation for [` M_{R \cap S} `] and [` M_{R \cup S} `]. From 3862454763c29de283a6427711c4247c3b2c8b38 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:00:52 -0500 Subject: [PATCH 43/98] Update boolmatrixrep2.pg --- .../LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg b/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg index 095bb92965..0e3c6cc627 100644 --- a/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg +++ b/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for matrices @@ -53,8 +53,6 @@ $prod = Matrix([ ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose the matrix representation for relations [` R `] and [` S `] are [` M_{R} = [$A] `] and [` M_{S} = [$B] `]. Compute the matrix represenation for [` M_{S \circ R} `]. From 6c6f07ad4907f8d05fc6caffb6254de8b25529ce Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:01:22 -0500 Subject: [PATCH 44/98] Update boolmatrixrep3.pg --- .../LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep3.pg b/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep3.pg index ebeecc82f8..053cd06f29 100644 --- a/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep3.pg +++ b/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep3.pg @@ -18,8 +18,8 @@ DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set the context for matrices @@ -46,8 +46,6 @@ $comp = $ones - $A; ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose the matrix representation for relation [` R `] is [` M_{R} = [$A] `]. Compute the matrix represenation for the inverse relation [` M_{R^{-1}} `] and the complement relation [` M_{\overline{R}} `]. From e71d99f012a9271f5e9c44cfb8693c5f7a955924 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:02:32 -0500 Subject: [PATCH 45/98] Update strings_language1.pg --- .../ch4Cs1_stringslanguages/strings_language1.pg | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language1.pg b/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language1.pg index ed1461442f..ba060b8db2 100644 --- a/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language1.pg +++ b/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language1.pg @@ -13,14 +13,13 @@ DOCUMENT(); loadMacros( - "PGstandard.pl", - "MathObjects.pl", - "PGML.pl", - "parserPopUp.pl", +"PGstandard.pl", +"MathObjects.pl", +"PGML.pl", +"parserPopUp.pl", +"PGcourse.pl" ); -TEXT(beginproblem()); - # Generate a random binary string $alphabet = "01"; $length = random(4, 8, 1); @@ -32,6 +31,7 @@ for ($i = 0; $i < $length; $i++) { $answer = ($length % 2 == 0) ? "Yes" : "No"; $popup = PopUp(['Choose...','Yes', 'No'], $answer); +# Display problem BEGIN_PGML Consider the language [`` L ``] over the alphabet [`` \{0, 1\} ``] that consists of all strings of even length. Determine if the following string belongs to [`` L ``]: @@ -40,4 +40,4 @@ String: [$string] Does the string belong to the language? [________]{$popup} END_PGML -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From d5ee18f5417ba35bcc842ede53f48ac64a81a471 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:04:26 -0500 Subject: [PATCH 46/98] Update strings_language2.pg --- .../ch4Cs1_stringslanguages/strings_language2.pg | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language2.pg b/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language2.pg index 175d7de965..6b2faff21c 100644 --- a/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language2.pg +++ b/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language2.pg @@ -13,14 +13,13 @@ DOCUMENT(); loadMacros( - "PGstandard.pl", - "MathObjects.pl", - "PGML.pl", - "parserPopUp.pl", +"PGstandard.pl", +"MathObjects.pl", +"PGML.pl", +"parserPopUp.pl", +"PGcourse.pl" ); -TEXT(beginproblem()); - # Generate a random binary string $alphabet = "01"; $length = random(3, 7, 1); @@ -33,6 +32,7 @@ for ($i = 1; $i < $length; $i++) { $answer = ($start eq "0") ? "Yes" : "No"; $popup = PopUp(['Choose...','Yes', 'No'], $answer); +# Display problem BEGIN_PGML Consider the language [`` L ``] over the alphabet [`` \{0, 1\} ``] that consists of all strings starting with 0. Determine if the following string belongs to [`` L ``]: @@ -41,4 +41,4 @@ String: [$string] Does the string belong to the language? [________]{$popup} END_PGML -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From c89bd690b00798cabb4dac41de9361c2b059c47d Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:05:01 -0500 Subject: [PATCH 47/98] Update strings_language3.pg --- .../ch4Cs1_stringslanguages/strings_language3.pg | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language3.pg b/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language3.pg index c1381f343a..b9c850a635 100644 --- a/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language3.pg +++ b/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language3.pg @@ -13,14 +13,13 @@ DOCUMENT(); loadMacros( - "PGstandard.pl", - "MathObjects.pl", - "PGML.pl", - "parserPopUp.pl", +"PGstandard.pl", +"MathObjects.pl", +"PGML.pl", +"parserPopUp.pl", +"PGcourse.pl" ); -TEXT(beginproblem()); - # Generate a random binary string $alphabet = "01"; $length = random(5, 10, 1); @@ -33,6 +32,7 @@ $one_count = () = $string =~ /1/g; $answer = ($one_count % 3 == 0) ? "Yes" : "No"; $popup = PopUp(['Choose...','Yes', 'No'], $answer); +# Display problem BEGIN_PGML Consider the language [`` L ``] over the alphabet [`` \{0, 1\} ``] that consists of all strings where the number of 1's is divisible by 3. Determine if the following string belongs to [`` L ``]: @@ -41,4 +41,4 @@ String: [$string] Does the string belong to the language? [________]{$popup} END_PGML -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From 8828019af61c91e0886482705763769bb81e0c53 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:05:35 -0500 Subject: [PATCH 48/98] Update strings_language4.pg --- .../ch4Cs1_stringslanguages/strings_language4.pg | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language4.pg b/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language4.pg index 5c904366cf..90e0741bc5 100644 --- a/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language4.pg +++ b/Contrib/LaTech/DiscreteMath/ch4Cs1_stringslanguages/strings_language4.pg @@ -13,13 +13,12 @@ DOCUMENT(); loadMacros( - "PGstandard.pl", - "PGML.pl", - "parserMultiAnswer.pl" +"PGstandard.pl", +"PGML.pl", +"parserMultiAnswer.pl", +"PGcourse.pl" ); -TEXT(beginproblem()); - # Enable set context with string elements Context()->strings->add("ab" => {}, "abb" => {}, "abbb" => {}); @@ -33,7 +32,7 @@ Context()->lists->set( # The correct set of strings $answer = List("ab", "abb", "abbb"); - +# Display problem BEGIN_PGML Let [`` L_{1} = \{a,ab\} ``] and [`` L_{2} = \{b,bb\} ``]. @@ -46,4 +45,4 @@ BEGIN_PGML_SOLUTION Distinct results: [`` ab,abb,abbb ``] END_PGML_SOLUTION -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From e9d15b4bd6c82ee9838e2fc8ad1e7a1aabd4cffe Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:06:18 -0500 Subject: [PATCH 49/98] Update dfa1.pg --- Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa1.pg | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa1.pg b/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa1.pg index c222a4015e..66e0346885 100644 --- a/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa1.pg +++ b/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa1.pg @@ -13,15 +13,14 @@ DOCUMENT(); loadMacros( - "PGstandard.pl", - "MathObjects.pl", - "niceTables.pl", - "PGML.pl", - "parserPopUp.pl", +"PGstandard.pl", +"MathObjects.pl", +"niceTables.pl", +"PGML.pl", +"parserPopUp.pl", +"PGcourse.pl" ); -TEXT(beginproblem()); - # Generate a random binary string $alphabet = "01"; $length = random(4, 8, 1); @@ -43,6 +42,7 @@ foreach my $char (split //, $string) { $answer = ($current_state eq "q2") ? "Accept" : "Reject"; $popup = PopUp(['Choose...','Accept', 'Reject'], $answer); +# Display problem BEGIN_PGML Consider a DFA over the alphabet \{0, 1\} that has states [` q_0 `], [` q_1 `], and [` q_2 `]. The transition table is: @@ -63,4 +63,4 @@ Given the input string [$string], what is the outcome? END_PGML -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From 0ec19902daebcaebac524db8fc8cc2de4f917ff4 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:06:59 -0500 Subject: [PATCH 50/98] Update dfa2.pg --- Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa2.pg | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa2.pg b/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa2.pg index 85a8243160..2056dba3ff 100644 --- a/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa2.pg +++ b/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa2.pg @@ -13,15 +13,14 @@ DOCUMENT(); loadMacros( - "PGstandard.pl", - "MathObjects.pl", - "niceTables.pl", - "PGML.pl", - "parserPopUp.pl", +"PGstandard.pl", +"MathObjects.pl", +"niceTables.pl", +"PGML.pl", +"parserPopUp.pl", +"PGcourse.pl" ); -TEXT(beginproblem()); - # Generate a random binary string $alphabet = "01"; $length = random(4, 8, 1); @@ -39,6 +38,7 @@ foreach my $char (split //, $string) { $answer = ($current_state eq "q0") ? "Accept" : "Reject"; $popup = PopUp(['Choose...','Accept', 'Reject'], $answer); +# Display problem BEGIN_PGML Consider a DFA over the alphabet \{0, 1\} that has states [` q_0 `], [` q_1 `]. The transition table is: @@ -58,4 +58,4 @@ Given the input string [$string], what is the outcome? END_PGML -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From 3cdbbe722464fa9025c73bcc558bee60d5b9f9df Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:07:31 -0500 Subject: [PATCH 51/98] Update dfa3.pg --- Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa3.pg | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa3.pg b/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa3.pg index 15d3cbf8ad..7855db5a4c 100644 --- a/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa3.pg +++ b/Contrib/LaTech/DiscreteMath/ch4Cs2_dfa/dfa3.pg @@ -13,11 +13,12 @@ DOCUMENT(); loadMacros( - "PGstandard.pl", - "MathObjects.pl", - "niceTables.pl", - "PGML.pl", - "parserPopUp.pl", +"PGstandard.pl", +"MathObjects.pl", +"niceTables.pl", +"PGML.pl", +"parserPopUp.pl", +"PGcourse.pl" ); TEXT(beginproblem()); @@ -43,6 +44,7 @@ foreach my $char (split //, $string) { $answer = $current_state; $popup = PopUp(['Choose...','q0', 'q1', 'q2'], $answer); +# Display problem BEGIN_PGML Consider a DFA over the alphabet \{0, 1\} with states [` q_0 `], [` q_1 `], and [` q_2 `]. The transition table is: @@ -63,4 +65,4 @@ Given the input string [$string], what is the final state? END_PGML -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From 8b9c1a1da9da8d5f0a460978945a35ab9da8fed5 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:08:01 -0500 Subject: [PATCH 52/98] Update nfa1.pg --- Contrib/LaTech/DiscreteMath/ch4Cs3_nfa/nfa1.pg | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4Cs3_nfa/nfa1.pg b/Contrib/LaTech/DiscreteMath/ch4Cs3_nfa/nfa1.pg index 353c0f35f1..8053c17095 100644 --- a/Contrib/LaTech/DiscreteMath/ch4Cs3_nfa/nfa1.pg +++ b/Contrib/LaTech/DiscreteMath/ch4Cs3_nfa/nfa1.pg @@ -13,15 +13,14 @@ DOCUMENT(); loadMacros( - "PGstandard.pl", - "MathObjects.pl", - "niceTables.pl", - "PGML.pl", - "parserPopUp.pl", +"PGstandard.pl", +"MathObjects.pl", +"niceTables.pl", +"PGML.pl", +"parserPopUp.pl", +"PGcourse.pl" ); -TEXT(beginproblem()); - # Generate a random binary string $alphabet = "01"; $length = random(4, 8, 1); @@ -51,6 +50,7 @@ foreach my $char (split //, $string) { $answer = (grep { $_ eq "q2" } @states) ? "Accept" : "Reject"; $popup = PopUp(['Choose...','Accept', 'Reject'], $answer); +# Display problem BEGIN_PGML Consider an NFA over the alphabet \{0, 1\}. The NFA has states [` q_0 `], [` q_1 `], [` q_2 `]. The transition table is: @@ -70,4 +70,4 @@ Given the input string [$string], what is the outcome? [________]{$popup} END_PGML -ENDDOCUMENT(); \ No newline at end of file +ENDDOCUMENT(); From 2105a073ba0f767b5a0ffd89f2b91b42d4dcad65 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:38:56 -0500 Subject: [PATCH 53/98] Create README.md --- Contrib/LaTech/DiscreteMath/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Contrib/LaTech/DiscreteMath/README.md diff --git a/Contrib/LaTech/DiscreteMath/README.md b/Contrib/LaTech/DiscreteMath/README.md new file mode 100644 index 0000000000..664cdb233d --- /dev/null +++ b/Contrib/LaTech/DiscreteMath/README.md @@ -0,0 +1 @@ +This subfolder contains problems authored by Jason Terry (jterry@latech.edu) for a course in Discrete Mathematics in the Departments of Mathematics or Computer Science. From 673f38453c1309aad479458b6e17066437bc5000 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:40:08 -0500 Subject: [PATCH 54/98] Update q1_arithmetic.pg --- .../MLSet1_BasicTypesOperators/q1_arithmetic.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q1_arithmetic.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q1_arithmetic.pg index fabd240f21..ba2906c2df 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q1_arithmetic.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q1_arithmetic.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "parserPopUp.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to numeric answers @@ -46,8 +46,6 @@ $popChar = PopUp(["Choose...","int","bool","real","char","string"], 4); $popString = PopUp(["Choose...","int","bool","real","char","string"], 5); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine the value and type returned when the following ML expressions are evaluated. From b9369c9bd704e6f15287eddf91e875b94a2cb9af Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:40:42 -0500 Subject: [PATCH 55/98] Update q2_ifthenelse.pg --- .../MLSet1_BasicTypesOperators/q2_ifthenelse.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q2_ifthenelse.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q2_ifthenelse.pg index 6743bc669b..cc7e3d0516 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q2_ifthenelse.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q2_ifthenelse.pg @@ -18,10 +18,10 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", "parserPopUp.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -51,8 +51,6 @@ $popChar = PopUp(["Choose...","int","bool","real","char","string"], 4); $popString = PopUp(["Choose...","int","bool","real","char","string"], 5); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine the value and type returned when the following ML expressions are evaluated. From f42b65e54d4a03dde36b43999502d8e3cf4ea467 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:41:25 -0500 Subject: [PATCH 56/98] Update q3_coercion.pg --- .../MLSet1_BasicTypesOperators/q3_coercion.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q3_coercion.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q3_coercion.pg index e843e3b855..a4ef1c5fe7 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q3_coercion.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q3_coercion.pg @@ -17,11 +17,11 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", ##"niceTables.pl", ##"contextArbitraryString.pl", "parserPopUp.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to numeric answers @@ -59,8 +59,6 @@ $popChar = PopUp(["Choose...","int","bool","real","char","string"], 4); $popString = PopUp(["Choose...","int","bool","real","char","string"], 5); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine the value and type returned when the following ML expressions are evaluated. From d3c86b5e41acef5791b85fa4373a4a5f7da1f540 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:41:45 -0500 Subject: [PATCH 57/98] Update q4_validate1.pg --- .../MLSet1_BasicTypesOperators/q4_validate1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q4_validate1.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q4_validate1.pg index ae1d9cdcc9..02135376f2 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q4_validate1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q4_validate1.pg @@ -18,11 +18,11 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", ##"niceTables.pl", ##"contextArbitraryString.pl", "parserPopUp.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for popup questions. @@ -39,8 +39,6 @@ $popValid = PopUp(["Choose...","Valid","Invalid"], 1); $popInvalid = PopUp(["Choose...","Valid","Invalid"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following ML expressions are valid or invalid From 2d6ee9a840c22f03ed3d6f99304063279930535f Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:42:08 -0500 Subject: [PATCH 58/98] Update q5_validate2.pg --- .../MLSet1_BasicTypesOperators/q5_validate2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q5_validate2.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q5_validate2.pg index 3b9713ef2a..81c6e91f67 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q5_validate2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet1_BasicTypesOperators/q5_validate2.pg @@ -18,11 +18,11 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", ##"niceTables.pl", ##"contextArbitraryString.pl", "parserPopUp.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Do not reveal partial solutions for popup questions. @@ -39,8 +39,6 @@ $popValid = PopUp(["Choose...","Valid","Invalid"], 1); $popInvalid = PopUp(["Choose...","Valid","Invalid"], 2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following ML expressions are valid or invalid From 0fab9dea38bcb241961f465de807d646f8442c05 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:42:32 -0500 Subject: [PATCH 59/98] Update q1_values1.pg --- .../MLSet2_ValuesTuplesLists/q1_values1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q1_values1.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q1_values1.pg index 2977680f9b..09839ccc49 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q1_values1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q1_values1.pg @@ -18,9 +18,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -39,8 +39,6 @@ $a = $c - $a; $c = $c + $a; ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine the final value of the all variables after all the following ML value declarations. From de012bf87c37263f8e0b565df11a610d758fd31f Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:42:53 -0500 Subject: [PATCH 60/98] Update q2_tuplelisttype1.pg --- .../MLSet2_ValuesTuplesLists/q2_tuplelisttype1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q2_tuplelisttype1.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q2_tuplelisttype1.pg index f91d6e5fb4..3ccbee8c73 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q2_tuplelisttype1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q2_tuplelisttype1.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -65,8 +65,6 @@ $ans5 = String("int list list")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the following ML expressions. *WARNING: Only use required parentheses for types to match the ML compiler's response.* From bdf58b97717be73e4ed4d5a9d43c3cb694c69349 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:43:15 -0500 Subject: [PATCH 61/98] Update q3_tuplelisttype2.pg --- .../MLSet2_ValuesTuplesLists/q3_tuplelisttype2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q3_tuplelisttype2.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q3_tuplelisttype2.pg index b720d6eac3..2023afb435 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q3_tuplelisttype2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q3_tuplelisttype2.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -65,8 +65,6 @@ $ans5 = String("((int*int)*int) list")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the following ML expressions. *WARNING: Only use required parentheses for types to match the ML compiler's response.* From 5e43effd4ec72893d0486fe8202de995079f54d0 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:43:34 -0500 Subject: [PATCH 62/98] Update q4_listtype1.pg --- .../MLSet2_ValuesTuplesLists/q4_listtype1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q4_listtype1.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q4_listtype1.pg index 9d8ddd9948..f74f587f3b 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q4_listtype1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q4_listtype1.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -100,8 +100,6 @@ $type5 = String("bool list")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the value and type of the following ML expressions. *WARNING: Only use required parentheses for tuples and types to match the ML compiler's response.* From 99bd011c72ec0ed9f25742f6b41e9ee29c06a734 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:43:54 -0500 Subject: [PATCH 63/98] Update q5_listtype2.pg --- .../MLSet2_ValuesTuplesLists/q5_listtype2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q5_listtype2.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q5_listtype2.pg index 96173de80c..e170984e97 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q5_listtype2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet2_ValuesTuplesLists/q5_listtype2.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -103,8 +103,6 @@ $type5 = String("string")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the value and type of the following ML expressions. *WARNING: Only use required parentheses for tuples and types to match the ML compiler's response.* From 1bee494a44bac8c7a30d9cb67d2e0fa4047f0065 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:44:22 -0500 Subject: [PATCH 64/98] Update q01_fun1.pg --- .../ProgrammingLanguages/MLSet3_Functions/q01_fun1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q01_fun1.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q01_fun1.pg index 5ddbe4dacb..0fdd7bc80b 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q01_fun1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q01_fun1.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -90,8 +90,6 @@ $type5 = String("int")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose we execute the following lines of ML code. From 47317b50e5f745f4c9fa44c02b5e6299a611a1d8 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:44:44 -0500 Subject: [PATCH 65/98] Update q02_fun2.pg --- .../ProgrammingLanguages/MLSet3_Functions/q02_fun2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q02_fun2.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q02_fun2.pg index db214ab911..48f5fd4d79 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q02_fun2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q02_fun2.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -75,8 +75,6 @@ $type5 = String("bool->bool")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the given ML function f. *WARNING: Types must use the minimum set of parentheses to match the ML compiler's response.* From ce5e3bd19b8406c964dec08093b75b93e49fcd1e Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:45:05 -0500 Subject: [PATCH 66/98] Update q03_fun3.pg --- .../ProgrammingLanguages/MLSet3_Functions/q03_fun3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q03_fun3.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q03_fun3.pg index 14cf0fdc8b..315a9055f1 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q03_fun3.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q03_fun3.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -75,8 +75,6 @@ $type5 = String("'a*'b->'b*'a")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the given ML function f. *WARNING: Types must use the minimum set of parentheses to match the ML compiler's response.* From 797a3ca9ece41ccdea7a2742b5edffc9fa0250cb Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:45:29 -0500 Subject: [PATCH 67/98] Update q04_fun4.pg --- .../ProgrammingLanguages/MLSet3_Functions/q04_fun4.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q04_fun4.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q04_fun4.pg index fb1314acfe..22d8fc9428 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q04_fun4.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q04_fun4.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -75,8 +75,6 @@ $type5 = String("'a->'b->'b")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the given ML function f. *WARNING: Types must use the minimum set of parentheses to match the ML compiler's response.* From 4925c1d1e8f18f80f4414d9085ec162ec34d3f44 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:45:49 -0500 Subject: [PATCH 68/98] Update q05_fun5.pg --- .../ProgrammingLanguages/MLSet3_Functions/q05_fun5.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q05_fun5.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q05_fun5.pg index 3526814abe..2b759c5228 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q05_fun5.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q05_fun5.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -73,8 +73,6 @@ $type5 = String("'a->'b->'a*'b")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the given ML function f. *WARNING: Types must use the minimum set of parentheses to match the ML compiler's response.* From 8b854d78ad16fe0e001783d62ad93a5e5c83c672 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:46:09 -0500 Subject: [PATCH 69/98] Update q06_fun6.pg --- .../ProgrammingLanguages/MLSet3_Functions/q06_fun6.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q06_fun6.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q06_fun6.pg index 4cd14988f7..17a7c3844c 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q06_fun6.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q06_fun6.pg @@ -18,9 +18,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -74,8 +74,6 @@ $type5 = String("int*int->int*int->int")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the given ML function f. *WARNING: Types must use the minimum set of parentheses to match the ML compiler's response.* From bd15ca97f2081a7ad03776b45a635a906e09916c Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:46:28 -0500 Subject: [PATCH 70/98] Update q07_fun7.pg --- .../ProgrammingLanguages/MLSet3_Functions/q07_fun7.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q07_fun7.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q07_fun7.pg index 4c31b9a54f..ba829c33f1 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q07_fun7.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q07_fun7.pg @@ -16,9 +16,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -99,8 +99,6 @@ $type5 = String("int list")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose we execute the following lines of ML code. From 98b98e3254e9fe7315281f3a5dc9469203ef30f9 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:46:48 -0500 Subject: [PATCH 71/98] Update q08_recursion1.pg --- .../ProgrammingLanguages/MLSet3_Functions/q08_recursion1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q08_recursion1.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q08_recursion1.pg index 87a2cfebf3..8897a5bb7a 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q08_recursion1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q08_recursion1.pg @@ -17,8 +17,8 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set context to numeric answers @@ -49,8 +49,6 @@ $ans4 = myfun($n2); $ans5 = myfun($n3); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following recursive ML function: From d3a5b10c72302c1f41037557e1ef31c398b7f347 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:47:07 -0500 Subject: [PATCH 72/98] Update q09_recursion2.pg --- .../ProgrammingLanguages/MLSet3_Functions/q09_recursion2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q09_recursion2.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q09_recursion2.pg index fdbe75ff0f..2a568bdade 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q09_recursion2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q09_recursion2.pg @@ -18,8 +18,8 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set context to numeric answers @@ -49,8 +49,6 @@ $ans4 = myfun($n1); $ans5 = myfun($n2); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following recursive ML function: From a347c13da5d19d65f830fd4fb71d2b7adde2db4f Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:47:27 -0500 Subject: [PATCH 73/98] Update q10_recursion3.pg --- .../ProgrammingLanguages/MLSet3_Functions/q10_recursion3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q10_recursion3.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q10_recursion3.pg index 22637323c9..fa231c79d6 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q10_recursion3.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet3_Functions/q10_recursion3.pg @@ -17,8 +17,8 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Set context to numeric answers @@ -59,8 +59,6 @@ $ans4 = f($n1); $ans5 = g($n1); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Consider the following mutually recursive ML functions: From b5a4c1ee9b0304f5a52c71273ca917d38d3feb5a Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:48:01 -0500 Subject: [PATCH 74/98] Update q1_mapreduce1.pg --- .../MLSet4_AdvancedFunctionsTypes/q1_mapreduce1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q1_mapreduce1.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q1_mapreduce1.pg index 3ecacec28e..12f39de74d 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q1_mapreduce1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q1_mapreduce1.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -97,8 +97,6 @@ $type5 = String("string")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose we execute the following lines of ML code. From 4675e3bcce33ebdcd782011ebe9e1d4204084852 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:48:24 -0500 Subject: [PATCH 75/98] Update q2_mapreduce2.pg --- .../MLSet4_AdvancedFunctionsTypes/q2_mapreduce2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q2_mapreduce2.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q2_mapreduce2.pg index afb8a2c8a1..3a2ef2781c 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q2_mapreduce2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q2_mapreduce2.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -106,8 +106,6 @@ $type5 = String("int")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose we execute the following lines of ML code. From 28658f1ceafe616188c75f06a5edf5d236792a71 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:48:47 -0500 Subject: [PATCH 76/98] Update q3_option1.pg --- .../MLSet4_AdvancedFunctionsTypes/q3_option1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q3_option1.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q3_option1.pg index f36f19e293..f851703a28 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q3_option1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q3_option1.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -68,8 +68,6 @@ $ans5 = String("int option list")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the following ML expressions. *WARNING: Only use required parentheses for types to match the ML compiler's response.* From c15e2ae0ac195b934461feae70c02b1588c6eae4 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:49:07 -0500 Subject: [PATCH 77/98] Update q4_option2.pg --- .../MLSet4_AdvancedFunctionsTypes/q4_option2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q4_option2.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q4_option2.pg index ac644042d7..0e86b4e304 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q4_option2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q4_option2.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -76,8 +76,6 @@ $type5 = String("'a option->bool")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the given ML function f. *WARNING: Types must use the minimum set of parentheses to match the ML compiler's response.* From 78d690df3c4b6fb2461b5ddbf593b6527adb2783 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:49:25 -0500 Subject: [PATCH 78/98] Update q5_option3.pg --- .../MLSet4_AdvancedFunctionsTypes/q5_option3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q5_option3.pg b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q5_option3.pg index 5df884b4ad..22e8733c0d 100644 --- a/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q5_option3.pg +++ b/Contrib/LaTech/ProgrammingLanguages/MLSet4_AdvancedFunctionsTypes/q5_option3.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -76,8 +76,6 @@ $type5 = String("'a option*'a->'a option list")->cmp( ## Display question -TEXT(beginproblem()); - BEGIN_PGML Write the type of the given ML function f. *WARNING: Types must use the minimum set of parentheses to match the ML compiler's response.* From 7697f559bc218f70681fcd657e9b0cf2b6f71794 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:49:46 -0500 Subject: [PATCH 79/98] Update q1_unify1.pg --- .../ProgrammingLanguages/PrologSet1_UnifyGoals/q1_unify1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q1_unify1.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q1_unify1.pg index 091dc74220..6b8d2da4a3 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q1_unify1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q1_unify1.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -70,8 +70,6 @@ $ans5 = String("false")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From 1484f46ca52059d33afbeab6b5e1511bd729bd49 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:50:07 -0500 Subject: [PATCH 80/98] Update q2_unify2.pg --- .../ProgrammingLanguages/PrologSet1_UnifyGoals/q2_unify2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q2_unify2.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q2_unify2.pg index 275abc85be..b075f5e5ba 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q2_unify2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q2_unify2.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -70,8 +70,6 @@ $ans5 = String("false")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From b0cd00412edf2d0c154749179232b91dbd2cf77f Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:50:31 -0500 Subject: [PATCH 81/98] Update q3_goal1.pg --- .../ProgrammingLanguages/PrologSet1_UnifyGoals/q3_goal1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q3_goal1.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q3_goal1.pg index e7838cabe6..093a8944a1 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q3_goal1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q3_goal1.pg @@ -18,9 +18,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -67,8 +67,6 @@ $ans5 = String("false")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose Prolog has read the following database. From d08f57cb09aebe07ba2abcc49b63c4ce3db3040e Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:50:52 -0500 Subject: [PATCH 82/98] Update q4_goal2.pg --- .../ProgrammingLanguages/PrologSet1_UnifyGoals/q4_goal2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q4_goal2.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q4_goal2.pg index f43b4bd1ae..15c88c65cc 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q4_goal2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q4_goal2.pg @@ -18,9 +18,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -67,8 +67,6 @@ $ans5 = String("A=rick,A=michonne")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose Prolog has read the following database. From c6985c6f24dbde079933305ccce196b788c54cf8 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:51:10 -0500 Subject: [PATCH 83/98] Update q5_goal3.pg --- .../ProgrammingLanguages/PrologSet1_UnifyGoals/q5_goal3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q5_goal3.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q5_goal3.pg index 78c3d61c18..078734f3b5 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q5_goal3.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet1_UnifyGoals/q5_goal3.pg @@ -18,9 +18,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -67,8 +67,6 @@ $ans5 = String("A=dan,B=sally,A=sally,B=dan")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose Prolog has read the following database. From edb9577c545a63139d51d444efd928a9fd1efc86 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:51:31 -0500 Subject: [PATCH 84/98] Update q1_opsarith1.pg --- .../PrologSet2_OperatorsArithmetic/q1_opsarith1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q1_opsarith1.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q1_opsarith1.pg index 0602e19486..131f2f5711 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q1_opsarith1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q1_opsarith1.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -76,8 +76,6 @@ $ans5 = String("X=$b,Y=-$b-2")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From b57bb9d42e47a07089772e3aa90ab36e4985cadd Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:51:48 -0500 Subject: [PATCH 85/98] Update q2_opsarith2.pg --- .../PrologSet2_OperatorsArithmetic/q2_opsarith2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q2_opsarith2.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q2_opsarith2.pg index 029a82eac8..cd1fa5125e 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q2_opsarith2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q2_opsarith2.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -76,8 +76,6 @@ $ans5 = String("false")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From 0a824a8a4a29e25925eeac0db9278ec6bc3d8e24 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:52:09 -0500 Subject: [PATCH 86/98] Update q3_opsarith3.pg --- .../PrologSet2_OperatorsArithmetic/q3_opsarith3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q3_opsarith3.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q3_opsarith3.pg index d3b4441bbd..8f388331f6 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q3_opsarith3.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q3_opsarith3.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -76,8 +76,6 @@ $ans5 = String("false")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From 7a0d0e96a3d021e56bd0e9153fcc20f556209e39 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:52:31 -0500 Subject: [PATCH 87/98] Update q4_opsarith4.pg --- .../PrologSet2_OperatorsArithmetic/q4_opsarith4.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q4_opsarith4.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q4_opsarith4.pg index 141434b51b..6d442487d4 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q4_opsarith4.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q4_opsarith4.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -78,8 +78,6 @@ $ans5 = String("R=$a4")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose Prolog has read the following database: *f(X,R) :- R is [$a]\*X + [$b].* From b411bb21b6c65a0af56fab74a44c9315bf2c26cf Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:52:50 -0500 Subject: [PATCH 88/98] Update q5_chars1.pg --- .../PrologSet2_OperatorsArithmetic/q5_chars1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q5_chars1.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q5_chars1.pg index 4d0f3f8e26..8a50d537bf 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q5_chars1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet2_OperatorsArithmetic/q5_chars1.pg @@ -18,9 +18,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -78,8 +78,6 @@ $ans5 = String("X=$s")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From c8b3d6dafd03b3f1395db6a708a6453017f0e8ed Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:53:09 -0500 Subject: [PATCH 89/98] Update q1_list1.pg --- .../ProgrammingLanguages/PrologSet3_Lists/q1_list1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q1_list1.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q1_list1.pg index 4bc5b9a414..97b09eff5c 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q1_list1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q1_list1.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -71,8 +71,6 @@ $ans5 = String("X=a$a,Y=b$b,Z=[c$c]")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From cf76a9982f15bb782a3b878df134076d4e475a37 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:53:29 -0500 Subject: [PATCH 90/98] Update q2_list2.pg --- .../ProgrammingLanguages/PrologSet3_Lists/q2_list2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q2_list2.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q2_list2.pg index fbaad4c6bd..a37518e42c 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q2_list2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q2_list2.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -71,8 +71,6 @@ $ans5 = String("X=a$a,Z=[c$c]")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From 08a524363d6f8e1598efcd0c8866b1b097b8096f Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:53:49 -0500 Subject: [PATCH 91/98] Update q3_list3.pg --- .../ProgrammingLanguages/PrologSet3_Lists/q3_list3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q3_list3.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q3_list3.pg index 669287de47..5a4e3fd5cb 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q3_list3.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q3_list3.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -71,8 +71,6 @@ $ans5 = String("false")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From 3a5d36efbd6e2b8a448cb8bb22be99a253895810 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:54:07 -0500 Subject: [PATCH 92/98] Update q4_list4.pg --- .../ProgrammingLanguages/PrologSet3_Lists/q4_list4.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q4_list4.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q4_list4.pg index fd8d48b185..6a2a0fef1d 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q4_list4.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q4_list4.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -71,8 +71,6 @@ $ans5 = String("R=c$c" . "b$b" . "a$a")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Determine whether the following Prolog statements would succeed or fail, and then which variables, if any, would be instantiated to which values. Write your answer on the blank line provided *IN THE CORRECT FORMAT AS FOLLOWS*. From 766a3b9bc17586a1f698da6ee007ae5facc9519d Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:54:26 -0500 Subject: [PATCH 93/98] Update q5_maplistfoldl1.pg --- .../PrologSet3_Lists/q5_maplistfoldl1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q5_maplistfoldl1.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q5_maplistfoldl1.pg index 8730b8763a..20ad8cb0c4 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q5_maplistfoldl1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet3_Lists/q5_maplistfoldl1.pg @@ -17,9 +17,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -79,8 +79,6 @@ $ans5 = String("R=cba")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose Prolog has read the following database. From fdf53d0f3e667bcb482a8fc8e454d071c47a42b6 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:54:48 -0500 Subject: [PATCH 94/98] Update q1_recursion1.pg --- .../PrologSet4_Recursion/q1_recursion1.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q1_recursion1.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q1_recursion1.pg index f81b76f4cb..9c533096c3 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q1_recursion1.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q1_recursion1.pg @@ -18,9 +18,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -91,8 +91,6 @@ $ans5 = String("R=$a5")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose Prolog has read the following database. From ecde929bc3df73d1f2eebbc243487756d3a291b0 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:55:06 -0500 Subject: [PATCH 95/98] Update q2_recursion2.pg --- .../PrologSet4_Recursion/q2_recursion2.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q2_recursion2.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q2_recursion2.pg index 249d7088b3..3599922d33 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q2_recursion2.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q2_recursion2.pg @@ -18,9 +18,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -90,8 +90,6 @@ $ans5 = String("R=$a5")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose Prolog has read the following database. From 6ae02fb47929ab8f178ef416aac55a800e649950 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:55:25 -0500 Subject: [PATCH 96/98] Update q3_recursion3.pg --- .../PrologSet4_Recursion/q3_recursion3.pg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q3_recursion3.pg b/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q3_recursion3.pg index 253d360cf2..fef67d009a 100644 --- a/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q3_recursion3.pg +++ b/Contrib/LaTech/ProgrammingLanguages/PrologSet4_Recursion/q3_recursion3.pg @@ -18,9 +18,9 @@ DOCUMENT(); ## Load libraries loadMacros( "PGstandard.pl", -"PGcourse.pl", "contextArbitraryString.pl", -"PGML.pl" +"PGML.pl", +"PGcourse.pl" ); ## Change context to strings answers @@ -101,8 +101,6 @@ $ans5 = String("R=$a5")->cmp( ); ## Display question -TEXT(beginproblem()); - BEGIN_PGML Suppose Prolog has read the following database. From 9c60bd905e5d7eabf84801c9d4ea11871505d989 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Fri, 7 Aug 2026 15:25:56 -0500 Subject: [PATCH 97/98] Update boolmatrix2.pg Bug fixed in computation of boolean product in line 41 --- Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg b/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg index 4588138c36..b2251ec566 100644 --- a/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg +++ b/Contrib/LaTech/DiscreteMath/ch4As1_matrices/boolmatrix2.pg @@ -40,7 +40,11 @@ $B = Matrix([ ## Create their boolean product for my $i (1..3) { for my $j (1..3) { - $temp[$i][$j] = min(($A->row($i)*$B->column($j))->element(1,1), 1); + my $sum = 0; + for my $k (1..3) { + $sum += $A->element($i,$k) * $B->element($k,$j); + } + $temp[$i][$j] = min($sum, 1); } } From 967c1a425957f39005adec36b0ce1cc2c1cdca75 Mon Sep 17 00:00:00 2001 From: jpaulterry <75586093+jpaulterry@users.noreply.github.com> Date: Fri, 7 Aug 2026 15:27:22 -0500 Subject: [PATCH 98/98] Update boolmatrixrep2.pg Bug fixed in computation of boolean product in line 42 --- .../LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg b/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg index 0e3c6cc627..41f13ad740 100644 --- a/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg +++ b/Contrib/LaTech/DiscreteMath/ch4As3_relations/boolmatrixrep2.pg @@ -41,7 +41,11 @@ $B = Matrix([ ## Create their boolean product for my $i (1..3) { for my $j (1..3) { - $temp[$i][$j] = min(($A->row($i)*$B->column($j))->element(1,1), 1); + my $sum = 0; + for my $k (1..3) { + $sum += $A->element($i,$k) * $B->element($k,$j); + } + $temp[$i][$j] = min($sum, 1); } }