From ff620ce6ac85cf10600b3da9a640f6ebc3568444 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Thu, 21 Nov 2019 15:50:24 -0500 Subject: [PATCH] commit another bunch of changes yeah, awful commit descriptions; i know... --- .rsync-exclude | 6 +- 404.html | 16 +- bandali-computing.html | 74 ++++ bandali-cv.html | 94 +++++ bandali-pubkey.txt | 346 ++++++++------- computing.html | 84 ---- contact.html | 134 +++--- cv.html | 69 --- gpl-3.0.html | 699 +++++++++++++++++++++++++++++++ index.html | 160 +++++-- license.html | 45 ++ now.html | 51 --- publications.html | 83 ---- research.html | 40 -- se212-f19/index.html | 62 +++ se212-f19/se212-h02q04d-soln.grg | 25 ++ se212-f19/se212-t01.html | 343 +++++++++++++++ se212-f19/se212-t01.org | 78 ++++ se212-f19/se212-t05.org | 272 ++++++++++++ style.css | 151 ++++--- 20 files changed, 2159 insertions(+), 673 deletions(-) create mode 100644 bandali-computing.html create mode 100644 bandali-cv.html delete mode 100644 computing.html delete mode 100644 cv.html create mode 100644 gpl-3.0.html create mode 100644 license.html delete mode 100644 now.html delete mode 100644 publications.html delete mode 100644 research.html create mode 100644 se212-f19/index.html create mode 100644 se212-f19/se212-h02q04d-soln.grg create mode 100644 se212-f19/se212-t01.html create mode 100644 se212-f19/se212-t01.org create mode 100644 se212-f19/se212-t05.org diff --git a/.rsync-exclude b/.rsync-exclude index d78dd82..8fbae0a 100644 --- a/.rsync-exclude +++ b/.rsync-exclude @@ -2,4 +2,8 @@ bandali-cv.pdf images -publications +papers +talks + +se212-f19/*.pdf +se212-f19/*.png diff --git a/404.html b/404.html index bf61a8e..778659e 100644 --- a/404.html +++ b/404.html @@ -3,20 +3,16 @@ - 404 not found + 404 Not Found
-
-

bandali

-

404 gone fishing

-
-
-

- you should probably go home. -

-
+ +

404

+

+ Sorry, that page doesn’t exist. +

diff --git a/bandali-computing.html b/bandali-computing.html new file mode 100644 index 0000000..306e610 --- /dev/null +++ b/bandali-computing.html @@ -0,0 +1,74 @@ + + + + + + How I do my Computing | Amin Bandali + + + + + +
+

How I do my computing

+

+ (Inspired by computing pages of + rms + and + Leah Rowe) +

+ +

Computers

+

+ My main computer is a + soon-to-be-librebooted + ThinkPad X200. This is the machine I use the most in or out + the house. I also own and occasionally use a Dell XPS 15 more + as a “Desktop”, and a ThinkPad X220T tablet I use when reading + (and annotating) research papers. +

+ +

+ I also have the privilege of having access to a fleet of beefy + servers through our school’s + Computer Science Club, + which I use for some heavier computations every now and + again. +

+ +

GNU/Linux distros

+

+ I’ve used a large number of GNU/Linux distributions + throughout the years, but as of late, my favourite distros + are + Guix System, + Trisquel, and + Debian (with no + contrib or non-free). + I mostly use the + GNU Linux-libre + kernel. Guix System comes with GNU Linux-libre out of + the box, and on Debian-based distros I install it from + jxself’s + APT repository. +

+ +

Actual computing

+

+ I spend most of my time inside + GNU Emacs. +

+ +

Cell phone

+

+ I have an old Nexus 5 I reluctantly use from time to time. + It runs LineageOS+microG without GApps. Sadly it still + requires some blobs for functioning. I can’t wait for lxo’s + 0G + to become a reality fast enough :) +

+
+ + diff --git a/bandali-cv.html b/bandali-cv.html new file mode 100644 index 0000000..d9590ab --- /dev/null +++ b/bandali-cv.html @@ -0,0 +1,94 @@ + + + + + + Curriculum Vitae | Amin Bandali + + + + + +
+

Curriculum vitae (PDF)

+ + + + + + + + + + + + + + + + +
Sitebandali.eu.org
Emailbandali@uwaterloo.ca
Phoneavailable upon request via email
+ + +

Education

+

Master of Mathematics (Computer Science) | 2018–present

+

University of Waterloo, Canada

+

+ Supervised by Dr. Nancy Day | GPA: 3.7/4.0 | Expected completion: December 2019 +

+

+ Research focusing on formal logic, model checking, and verification. +

+ +

B.Sc. Honours Computer Science | 2013–2017

+

York University, Toronto, Canada

+

GPA: 7.84/9.0

+

+ Relevant courses: System Specification & Refinement, Software Requirements Eng., Software + Design, Operating Systems, Computational Complexity, Design & Analysis of Algorithms. +

+

+ Finished first year (2013-14) at Carleton University with a GPA of 11.0/12.0, then + transferred to York University in fall 2014. +

+ + +

Publications

+

Listed on my home page.

+ + +

Work & Research Experience

+ +

Cheriton School of Computer Science, University of Waterloo | 2018–present

+

+ Instructional Apprentice, Teaching Assistant, Research Assistant +

+ + +

+ + EECS Department, York University | Fall 2017

+

Teaching Assistant

+

EECS + 1012: TA in Fall 2017 +

+
+ + diff --git a/bandali-pubkey.txt b/bandali-pubkey.txt index bcb0c08..fd196db 100644 --- a/bandali-pubkey.txt +++ b/bandali-pubkey.txt @@ -11,164 +11,190 @@ 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 -G15cCGeB8QmyC/QBxg== -=+Y0z +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 +=t+i2 -----END PGP PUBLIC KEY BLOCK----- diff --git a/computing.html b/computing.html deleted file mode 100644 index 03f7366..0000000 --- a/computing.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - How I do my Computing — Bandali - - - - -
-
-

bandali

-

How I do my computing

-
-
-

- (Inspired by computing pages of - rms - and - Leah Rowe) -

-
- -

Computers

-
-

- My main computer is a - soon-to-be-librebooted - ThinkPad X200. This is the machine I use the most in or out - the house. I also own and occasionally use a Dell XPS 15 - more as a “Desktop”, and a ThinkPad X220T tablet I use when - reading (and annotating) research papers. -

- -

- I also have the privilege of having access to a fleet of - beefy servers through our school’s - Computer Science Club, - which I use for some heavier computations every now and - again. -

- -

GNU/Linux distros

-

- I’ve used a large number of GNU/Linux distributions - throughout the years, but as of late, my favourite distros - are - Guix System, - Trisquel, and - Debian (with no - contrib or nonfree). I’m also - hoping to find some free time to help with the - rebooting - of gNewSense. - I mostly use the - Linux-libre - kernel. Guix System comes with Linux-libre by default, - and on Debian-based distros I install it from jxself’s - APT repository. -

- -

Actual computing

-

- I spend most of my time inside - GNU Emacs. -

-
- -

Cell phone

-
-

- I have an old Nexus 5 I reluctantly use from time to time. - It runs LineageOS+microG without GApps. Sadly it still - requires some blobs for functioning. I can’t wait for lxo’s - 0G - to become a reality fast enough :) -

-
-
- - diff --git a/contact.html b/contact.html index cbece68..fd14ff5 100644 --- a/contact.html +++ b/contact.html @@ -3,82 +3,84 @@ - Amin Bandali's Contact Information + Contact Information | Amin Bandali +
-
-

bandali

-

Contact info

-
-
-

- Email is by far my preferred method of communication. I may - be contacted at bandali at gnu dot org. - If you want to send me GPG-encrypted mail, you can use my - public key with the - fingerprint
- - BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103. -

+

Contact information

+

+ Email is by far my preferred method of communication. I may + be contacted at any of the following addresses (choose the + most closely related): - - - - - - - - - - - - - - - - - - - -
IRC - bandali on - freenode and - moznet -
XMPP - bandali@member.fsf.org -
Matrix - @bandali:matrix.org -
Fediverse - @bandali@pleroma.site -
-

- -

Elsewhere

-
-

- You may also find me at a few other places online. Stricken - through accounts are those I don’t use anymore, unless - absolutely necessary. -

-
+ + If you want to send me GPG-encrypted mail, you can use my + public key with the + fingerprint  + BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103. +

+ + + + + + + + + + + + + + + + + + + + +
IRC + bandali on + freenode and + moznet +
XMPP + + bandali@member.fsf.org +
Matrix + @bandali:matrix.org +
Fediverse + @bandali@pleroma.site +
+ +

Elsewhere

+

+ You may also find me at a few other places online. Stricken + through accounts are those I don’t use anymore, unless + absolutely necessary. +

+
diff --git a/cv.html b/cv.html deleted file mode 100644 index 11f94bb..0000000 --- a/cv.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - Amin Bandali's Curriculum Vitae - - - - -
-
-

bandali

-

Curriculum Vitae (PDF)

-
-
- - - - - - - - - - - - - - - - -
Sitebandali.eu.org
Emailbandali at uwaterloo dot ca
Phoneavailable upon request via email
-
- -
-

Education

-

Master of Mathematics (Computer Science) | 2018-present

-

University of Waterloo, Canada

-

- Supervised by Dr. Nancy Day | GPA: 3.7/4.0 | Expected completion: December 2019 -

-

- Research focusing on formal logic, model checking, and verification. -

- -

B.Sc. Honours Computer Science | 2013-2017

-

York University, Toronto, Canada

-

GPA: 7.84/9.0

-

- Relevant courses: System Specification & Refinement, Software Requirements Eng., Software - Design, Operating Systems, Computational Complexity, Design & Analysis of Algorithms. -

-

- Finished first year (2013-14) at Carleton University with a GPA of 11.0/12.0, then - transferred to York University in fall 2014. -

-
-
-

Publications

-

See my publications page. -

-
- - diff --git a/gpl-3.0.html b/gpl-3.0.html new file mode 100644 index 0000000..be92b65 --- /dev/null +++ b/gpl-3.0.html @@ -0,0 +1,699 @@ + + + + + + GNU General Public License v3.0 + + + +
+

GNU GENERAL PUBLIC LICENSE

+

Version 3, 29 June 2007

+ +

Copyright © 2007 Free Software Foundation, Inc. + <https://fsf.org/>

+ Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed.

+ +

Preamble

+ +

The GNU General Public License is a free, copyleft license for + software and other kinds of works.

+ +

The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + the GNU General Public License is intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. We, the Free Software Foundation, use the + GNU General Public License for most of our software; it applies also to + any other work released this way by its authors. You can apply it to + your programs, too.

+ +

When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things.

+ +

To protect your rights, we need to prevent others from denying you + these rights or asking you to surrender the rights. Therefore, you have + certain responsibilities if you distribute copies of the software, or if + you modify it: responsibilities to respect the freedom of others.

+ +

For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, receive + or can get the source code. And you must show them these terms so they + know their rights.

+ +

Developers that use the GNU GPL protect your rights with two steps: + (1) assert copyright on the software, and (2) offer you this License + giving you legal permission to copy, distribute and/or modify it.

+ +

For the developers' and authors' protection, the GPL clearly explains + that there is no warranty for this free software. For both users' and + authors' sake, the GPL requires that modified versions be marked as + changed, so that their problems will not be attributed erroneously to + authors of previous versions.

+ +

Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the manufacturer + can do so. This is fundamentally incompatible with the aim of + protecting users' freedom to change the software. The systematic + pattern of such abuse occurs in the area of products for individuals to + use, which is precisely where it is most unacceptable. Therefore, we + have designed this version of the GPL to prohibit the practice for those + products. If such problems arise substantially in other domains, we + stand ready to extend this provision to those domains in future versions + of the GPL, as needed to protect the freedom of users.

+ +

Finally, every program is threatened constantly by software patents. + States should not allow patents to restrict development and use of + software on general-purpose computers, but in those that do, we wish to + avoid the special danger that patents applied to a free program could + make it effectively proprietary. To prevent this, the GPL assures that + patents cannot be used to render the program non-free.

+ +

The precise terms and conditions for copying, distribution and + modification follow.

+ +

TERMS AND CONDITIONS

+ +

0. Definitions.

+ +

“This License” refers to version 3 of the GNU General Public License.

+ +

“Copyright” also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks.

+ +

“The Program” refers to any copyrightable work licensed under this + License. Each licensee is addressed as “you”. “Licensees” and + “recipients” may be individuals or organizations.

+ +

To “modify” a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a “modified version” of the + earlier work or a work “based on” the earlier work.

+ +

A “covered work” means either the unmodified Program or a work based + on the Program.

+ +

To “propagate” a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well.

+ +

To “convey” a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying.

+ +

An interactive user interface displays “Appropriate Legal Notices” + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion.

+ +

1. Source Code.

+ +

The “source code” for a work means the preferred form of the work + for making modifications to it. “Object code” means any non-source + form of a work.

+ +

A “Standard Interface” means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language.

+ +

The “System Libraries” of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + “Major Component”, in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it.

+ +

The “Corresponding Source” for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work.

+ +

The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source.

+ +

The Corresponding Source for a work in source code form is that + same work.

+ +

2. Basic Permissions.

+ +

All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law.

+ +

You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you.

+ +

Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary.

+ +

3. Protecting Users' Legal Rights From Anti-Circumvention Law.

+ +

No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures.

+ +

When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures.

+ +

4. Conveying Verbatim Copies.

+ +

You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program.

+ +

You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee.

+ +

5. Conveying Modified Source Versions.

+ +

You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions:

+ + + +

A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + “aggregate” if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate.

+ +

6. Conveying Non-Source Forms.

+ +

You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways:

+ + + +

A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work.

+ +

A “User Product” is either (1) a “consumer product”, which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, “normally used” refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product.

+ +

“Installation Information” for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made.

+ +

If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM).

+ +

The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network.

+ +

Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying.

+ +

7. Additional Terms.

+ +

“Additional permissions” are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions.

+ +

When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission.

+ +

Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms:

+ + + +

All other non-permissive additional terms are considered “further + restrictions” within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying.

+ +

If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms.

+ +

Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way.

+ +

8. Termination.

+ +

You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11).

+ +

However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation.

+ +

Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice.

+ +

Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10.

+ +

9. Acceptance Not Required for Having Copies.

+ +

You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so.

+ +

10. Automatic Licensing of Downstream Recipients.

+ +

Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License.

+ +

An “entity transaction” is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts.

+ +

You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it.

+ +

11. Patents.

+ +

A “contributor” is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's “contributor version”.

+ +

A contributor's “essential patent claims” are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, “control” includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License.

+ +

Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version.

+ +

In the following three paragraphs, a “patent license” is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To “grant” such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party.

+ +

If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. “Knowingly relying” means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid.

+ +

If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it.

+ +

A patent license is “discriminatory” if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007.

+ +

Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law.

+ +

12. No Surrender of Others' Freedom.

+ +

If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program.

+ +

13. Use with the GNU Affero General Public License.

+ +

Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU Affero General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the special requirements of the GNU Affero General Public License, + section 13, concerning interaction through a network will apply to the + combination as such.

+ +

14. Revised Versions of this License.

+ +

The Free Software Foundation may publish revised and/or new versions of + the GNU General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns.

+ +

Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU General + Public License “or any later version” applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU General Public License, you may choose any version ever published + by the Free Software Foundation.

+ +

If the Program specifies that a proxy can decide which future + versions of the GNU General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program.

+ +

Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version.

+ +

15. Disclaimer of Warranty.

+ +

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

+ +

16. Limitation of Liability.

+ +

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES.

+ +

17. Interpretation of Sections 15 and 16.

+ +

If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee.

+ +

END OF TERMS AND CONDITIONS

+ +

How to Apply These Terms to Your New Programs

+ +

If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms.

+ +

To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the “copyright” line and a pointer to where the full notice is found.

+ +
    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.
+      
+ +

Also add information on how to contact you by electronic and paper mail.

+ +

If the program does terminal interaction, make it output a short + notice like this when it starts in an interactive mode:

+ +
    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+      
+ +

The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, your program's commands + might be different; for a GUI interface, you would use an “about box”.

+ +

You should also get your employer (if you work as a programmer) or school, + if any, to sign a “copyright disclaimer” for the program, if necessary. + For more information on this, and how to apply and follow the GNU GPL, see + <https://www.gnu.org/licenses/>.

+ +

The GNU General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications with + the library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. But first, please read + <https://www.gnu.org/licenses/why-not-lgpl.html>.

+
+ + diff --git a/index.html b/index.html index 2a26b37..e51bf90 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ - + @@ -11,61 +11,141 @@ +
-
-

bandali

-

my corner of the interwebs

-
+

Amin Bandali

Hi, I’m Amin Bandali, - often just bandali around the web. -

-
-

Academia

-
- -

+ title="photo of bandali with rms wearing a “pay cash don’t be tracked” pin">Amin Bandali. I’m a graduate student at WatForm at University of Waterloo, supervised by Dr. Nancy Day. - My research at WatForm focuses on formal logic, model - checking, and verification. See my research interests link - above for more details. + The main goal of my research is improving + software and systems reliability + through application of formal methods.

-
-

Personal

-
- +

- I’m a Free Software - and Copyleft activist, - an FSF associate member, - and a GNU webmaster - and volunteer. I co-host the Emacs.el podcast, - and I’m organizing EmacsConf 2019 this fall. + My research at WatForm focuses on formal logic, model + checking, and verification. I’m also interested in + programming languages, theorem provers, and their type + systems. You may wish to view my + academic curriculum vitae. +

+ +

+ SE 212 students: + see here for slides and other + material from the tutorials.

+

On the side, I dabble in Lean and enjoy hacking on - Emacs Lisp. + Elisp. + I’m a Free Software activist + and FSF supporter, and a GNU maintainer + and webmaster. + I co-host the Emacs.el podcast with + Daniel Gopar, and + organize EmacsConf with + help from many wonderful people. + + I am also a member of the Systems Committee for the + Computer Science Club + of the University of Waterloo. +

+ +

+ See my contact page for how to + best reach me.

+ +

Papers

+
+
+ A Comparison of the Declarative Modelling Languages B, + Dash, and TLA+ + + [ + pdf + | + bib + ] + +
+
+ Ali Abbassi, + Amin Bandali, + Nancy A. Day, + and Jose Serna
+ 2018 IEEE 8th International Model-Driven Requirements + Engineering Workshop (MoDRE)
+ Copyright © 2018 IEEE. All Rights Reserved. Sadly. +
+
+ +

Talks

+
+
+ The Magic of Specifications and Type Systems + + [ + slides + | + poster + ] + +
+
+ Amin Bandali, + Simon Hudon, + Jonathan Ostroff +
+
+ +

Projects

+

+ Below are a number of free software projects I have worked on: +

+
+
george-mode
+
Emacs major mode for editing George files
+ +
alloy-catalyst
+
Framework for performance analysis of Alloy models
+ +
unitb-web
+
Web interface for Unit-B
+ +
tex2png-hs
+
Library and CLI for converting TeX and LaTeX to PNG images
+
+ +

Notes

+
+ diff --git a/license.html b/license.html new file mode 100644 index 0000000..7859711 --- /dev/null +++ b/license.html @@ -0,0 +1,45 @@ + + + + + + Licensing Information | Amin Bandali + + + + +
+

License information for bandali.eu.org

+

+ I strongly believe in + free culture + and that all creative works everywhere should be + free. +

+ +

+ Unless otherwise noted material on this site is licensed + under the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, + or (at your option) any later version. A copy of the license + is included at gpl-3.0.html. +

+ +

+ Some resources on free software and licenses: +

+ + +
+ + + diff --git a/now.html b/now.html deleted file mode 100644 index 2cdffb3..0000000 --- a/now.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - Amin Bandali's Now - - - - -
-
-

bandali

-

What I’m doing now

-
-
-

- This is my now page. -

- -

- I’m currently a graduate student at the - Waterloo Formal Methods - group at University of Waterloo. I have finished my - coursework requirements and am currently writing my thesis. - Additionally, I will be an IA for - SE - 212: Logic and Computation this Fall, and might end up - posting related material over on my - se212-f19 page. -

- -

- In my spare time, my main focus currently is organizing - EmacsConf 2019. - More generally, I enjoying writing - free software, - and tending to various tasks as a - GNU webmaster. - I’ve also been picking up the guitar lately. -

- -

- This update was on August 29, 2019. -

-
-
- - diff --git a/publications.html b/publications.html deleted file mode 100644 index 9743e5a..0000000 --- a/publications.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - Amin Bandali's Publications - - - - -
-
-

bandali

-

Publications

-
-
-

- conference - | - talks -

-
- -

Conference

-
-
-
- A Comparison of the Declarative Modelling Languages B, - Dash, and TLA+ - - [ - pdf - | - bib - | - doi - | - models - ] - -
-
- Ali Abbassi, - Amin Bandali, - Nancy A. Day, - and Jose Serna -
-
- 2018 IEEE 8th International Model-Driven Requirements - Engineering Workshop (MoDRE) -
-
-
- -

Talks

-
-
-
- The Magic of Specifications and Type Systems - - [ - slides - | - poster - ] - -
-
- Amin Bandali, - Simon Hudon, - Jonathan Ostroff -
-
-
-
- - diff --git a/research.html b/research.html deleted file mode 100644 index 878756e..0000000 --- a/research.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - Amin Bandali's Research Interests - - - - -
-
-

bandali

-

Research interests

-
-
-

- The main goal of my research is improving - software reliability - through application of formal methods. -

- -

- My current research - at WatForm - focuses on formal logic, model checking, and verification. - I am also interested in programming languages, type systems, - and interactive theorem proving. -

- -

- You may wish to view my - academic curriculum vitae. -

-
-
- - diff --git a/se212-f19/index.html b/se212-f19/index.html new file mode 100644 index 0000000..4155012 --- /dev/null +++ b/se212-f19/index.html @@ -0,0 +1,62 @@ + + + + + + SE 212 Material | Amin Bandali + + + + +
+

Material from SE 212 tutorials

+

+ This page contains slides and other material from + SE + 212 tutorials held by me in Fall 2019. + + If you have any questions, concerns, or suggestions about the + presented material, please email me at bandali@uwaterloo.ca or + come see me during my + Friday + office hours. +

+ + +
+ + + diff --git a/se212-f19/se212-h02q04d-soln.grg b/se212-f19/se212-h02q04d-soln.grg new file mode 100644 index 0000000..e395717 --- /dev/null +++ b/se212-f19/se212-h02q04d-soln.grg @@ -0,0 +1,25 @@ +#u abandali +#a h02 + +#q q04d + +p <=> q, p & q <=> (p | q) + +#check TP + +p <=> q <-> p & q <=> (p | q) + + 1) p & q <=> (p | q) + 2) (p & q => p | q) & (p | q => p & q) by equiv + 3) (!(p & q) | p | q) & (!(p | q) | p & q) by impl * 2 + 4) (!p | !q | p | q) & (!(p | q) | p & q) by dm + 5) (true | !q | q) & (!(p | q) | p & q) by lem + 6) true & (!(p | q) | p & q) by simp1 + 7) !(p | q) | p & q by simp1 + 8) !p & !q | p & q by dm + 9) (!p & !q | p) & (!p & !q | q) by distr +10) (!p | p) & (!q | p) & (!p | q) & (!q | q) by distr * 2 +11) true & (!q | p) & (!p | q) & true by lem * 2 +12) (!q | p) & (!p | q) by simp1 * 2 +13) (q => p) & (p => q) by impl * 2 +14) p <=> q by equiv diff --git a/se212-f19/se212-t01.html b/se212-f19/se212-t01.html new file mode 100644 index 0000000..d81cbd7 --- /dev/null +++ b/se212-f19/se212-t01.html @@ -0,0 +1,343 @@ + + + + + + + +Propositional Logic + + + + + + +
+

Propositional Logic +
+(SE 212 TUT 102) +

+ +
+

1 Are you at the right place?

+
+

+We’re in MC 4040, for SE 212 TUT 102 (03:30-04:20W) +

+
+
+ +
+

2

+
+
+

+George +

+
+
+
+ + + +
+

4 Tool support

+
+

+Over the years, students have developed a number of tools for using +George and/or editing .grg files, such as plugins for Vim and Atom. +

+ +

+Check them out at +

+ +
+

+Course website → George User Manual → Contributions +

+
+
+
+ +
+

5 George mode for Emacs (new!)

+
+ +
+
+ +
+

6 a00q01.grg (demo)

+
+

+Walk through answering a00q01.grg and submitting on MarkUs +

+
+
+ +
+

7 Homework 1

+
+
    +
  • Let’s do a couple of questions from Homework 1
  • +
  • Now you try the rest, let me know if you have any questions
  • +
+
+
+
+
+

Date: Wed Sep 11, 2019

+

Author: Amin Bandali

+ +

Created: 2019-09-18 Wed 23:12

+

Validate

+
+ + diff --git a/se212-f19/se212-t01.org b/se212-f19/se212-t01.org new file mode 100644 index 0000000..12e9cdd --- /dev/null +++ b/se212-f19/se212-t01.org @@ -0,0 +1,78 @@ +#+macro: topic Propositional Logic + +#+macro: room MC 4040 +#+macro: sec1 SE 212 TUT 101 +#+macro: sec2 SE 212 TUT 102 +#+macro: time1 02:30-03:20W +#+macro: time2 03:30-04:20W + +#+macro: sec {{{sec2}}} +#+macro: sectime {{{time2}}} + +#+title: {{{topic}}} +#+subtitle: ({{{sec}}}) +#+author: Amin Bandali +#+email: bandali@uwaterloo.ca +#+date: Wed Sep 11, 2019 +#+language: en +#+options: email:t num:t toc:nil \n:nil ::t |:t ^:t -:t f:t *:t <:t +#+options: tex:t d:nil todo:t pri:nil tags:not-in-toc +#+select_tags: export +#+exclude_tags: noexport +#+startup: beamer +#+latex_class: beamer +# #+latex_class_options: [bigger] +#+latex_header: \setbeamercovered{transparent} +#+latex: \setbeamertemplate{itemize items}[circle] +#+beamer_color_theme: beaver + +* Are you at the right place? + +We’re in {{{room}}}, for {{{sec}}} ({{{sectime}}}) + +* + +#+latex: \definecolor{darkred}{rgb}{0.8,0,0} +#+latex: {\Large \color{darkred} +#+begin_center +George +#+end_center +#+latex: } + +* + +#+latex: \vspace{-2.5em} +file:./george.png + +#+latex: {\footnotesize +https://www.student.cs.uwaterloo.ca/~se212/george/ask-george/ +#+latex: } + +* Tool support + +Over the years, students have developed a number of tools for using +George and/or editing =.grg= files, such as plugins for Vim and Atom. + +Check them out at + +#+begin_center +Course website → George User Manual → Contributions +#+end_center + +* George mode for Emacs (new!) + +- Syntax highlighting + a number of convenience functions +- Grab it from https://git.sr.ht/~bandali/george-mode \\ + (soon on Contributions page) + +* =a00q01.grg= (demo) + +Walk through answering =a00q01.grg= and submitting on MarkUs + +* Homework 1 +:PROPERTIES: +:BEAMER_act: [<+->] +:END: + +- Let’s do a couple of questions from Homework 1 +- Now you try the rest, let me know if you have any questions diff --git a/se212-f19/se212-t05.org b/se212-f19/se212-t05.org new file mode 100644 index 0000000..a85896d --- /dev/null +++ b/se212-f19/se212-t05.org @@ -0,0 +1,272 @@ +#+title: Predicate Logic +#+subtitle: (SE 212 Tutorial 5) +#+author: Amin Bandali +#+email: bandali@uwaterloo.ca +#+date: Wed Oct 9, 2019 +#+language: en +#+options: email:t num:t toc:nil \n:nil ::t |:t ^:t -:t f:t *:t <:t +#+options: tex:t d:nil todo:t pri:nil tags:not-in-toc +#+select_tags: export +#+exclude_tags: noexport +#+startup: beamer +#+latex_class: beamer +# #+latex_class_options: [bigger] +#+latex_header: \setbeamercovered{transparent} +#+latex: \setbeamertemplate{itemize items}[circle] +#+beamer_color_theme: beaver + +* Today’s plan +:PROPERTIES: +:BEAMER_act: [<+->] +:END: + +- do some semantics questions from homework 4 +- do some ND questions from homework 5 + +* =h04q05= + +Provide a counterexample to show that the following argument is not +valid and demonstrate that your answer is correct. + +#+begin_example +forall y : M . exists x : N . p(g(x), y) +|= +exists z : M . p(z, z) +#+end_example + +* =h04q05= \small{(cont’d)} + +#+begin_example +Domain: + M = {m1, m2} + N = {n1, n2} + +Mapping: + Syntax | Meaning + -------------------------- + g(.) | G(n1) := m1 + | G(n2) := m2 + -------------------------- + p(., .) | P(m1, m1) := F + | P(m1, m2) := T + | P(m2, m1) := T + | P(m2, m2) := F +#+end_example + +* =h04q05= \small{(cont’d)} + +#+begin_example +Premise: + [forall y : M . exists x : N . p(g(x), y)] + = [exists x: N. p(g(x), ^m1)] AND + [exists x: N . p(g(x), ^m2)] + = (P(G(n1), m1) OR P(G(n2), m1)) AND + (P(G(n1), m2) OR P(G(n2), m2)) + = (P(m1, m1) OR P(m2, m1)) AND + (P(m1, m2) OR P(m2, m2)) + = (F OR T) AND (T OR F) + = T +#+end_example + +* =h04q05= \small{(cont’d)} + +#+begin_example +Conclusion: + [exists z: M . p(z, z)] + = P(m1, m1) OR P(m2, m2) + = F OR F + = F +#+end_example + +* =h04q06= + +Express the following sentences in predicate logic. Use types in your +formalization. Is the set of formulas consistent? Demonstrate that +your answer is correct using the semantics of predicate logic. + +#+begin_example +All programmer like some computers. +Some programmers use MAC. +Therefore, some people who like some computers use MAC. +#+end_example + +* =h04q06= \small{(cont’d)} + +All programmer like some computers.\\ +Some programmers use MAC.\\ +Therefore, some people who like some computers use MAC. + +#+begin_example +Formalization: + programmer(x) means x is a programmer + usesmac(x) means x uses MAC + likes(x, y) means x likes y + +forall x: Person . programmer(x) => + exists y: Computer . likes(x, y), +exists x: Person . programmer(x) & usesmac(x) +|- +exists x: Person . + (exists y: Computer . likes(x, y) & usesmac(x)) +#+end_example + +* =h04q06= \small{(cont’d)} + +These sentences are /consistent/. Here is an interpretation in which +all the formulas are T: + +#+begin_example +Domain: + People = {John} + Computer = {MacPro} + +Mapping: + Syntax | Meaning + ------------------------------------------- + programmer(.) | programmer(John) = T + likes(.,.) | likes(John, MacPro) = T + usesmac(.) | usesmac(John) = T +#+end_example + +* =h04q06= \small{(cont’d)} + +#+begin_example +formula 1: + [forall x: Person . programmer(x) => + exists y: Computer . likes(x, y)] + = [programmer(^John) => + exists y: Computer . likes(^John, y)]] + = programmer(John) IMP likes(John, MacPro) + = T IMP T + = T + +formula 2: + [exists x: Person . programmer(x) & usesmac(x)] + = programmer(John) AND usesmac(John) + = T AND T + = T +#+end_example + +* =h04q06= \small{(cont’d)} + +#+begin_example +formula 3: + [exists x: Person . (exists y: Computer . + likes(x, y) & usesmac(x))] + = [exists y: Computer . + likes(^John, y) & usesmac(^John)] + = likes(John, MacPro) AND usesmac(John) + = T AND T + = T +#+end_example + +* =h05q01a= + +If the following arguments are valid, use natural deduction AND +semantic tableaux to prove them; otherwise, provide a counterexample. + +#+begin_example +forall x . s(x) | t(x), +forall x . s(x) => t(x) & k(c, x), +forall x . t(x) => m(x) +|- +m(c) +where c is a constant +#+end_example + +* =h05q01a= \small{(cont’d)} + +#+begin_example +#check ND +forall x . s(x) | t(x), +forall x . s(x) => t(x) & k(c, x), +forall x . t(x) => m(x) +|- +m(c) +#+end_example + +* =h05q01a= \small{(cont’d)} + +#+begin_example +1) forall x . s(x) | t(x) premise +2) forall x . s(x) => t(x) & k(c, x) premise +3) forall x . t(x) => m(x) premise +4) s(c) | t(c) by forall_e on 1 +5) s(c) => t(c) & k(c, c) by forall_e on 2 +6) t(c) => m(c) by forall_e on 3 +7) case s(c) { + 8) t(c) & k(c, c) by imp_e on 5, 7 + 9) t(c) by and_e on 8 + 10) m(c) by imp_e on 6, 9 +} +11) case t(c) { + 12) m(c) by imp_e on 6, 11 +} +13) m(c) by cases on 4, 7-10, 11-12 +#+end_example + +* =h05q01b= + +Is this formula a tautology? + +#+begin_example +|- (exists x . p(x)) => forall y . p(y) +#+end_example + +* =h05q01b= \small{(cont’d)} + +No, this formula is not a tautology. Interpretation: + +#+begin_example +1) Domain = {a, b} + +2) Mapping: + Syntax | Meaning + ---------------------- + p(.) | P(a) = T + | P(b) = F + +Conclusion: + [(exists x. p(x)) => forall y. p(y)] += (P(a) OR P(b)) IMP (P(a) AND P(b)) += (T OR F) IMP (T AND F) += T IMP F += F +#+end_example + +* =h05q01d= + +Is this argument valid? + +#+begin_example +forall x . p(x) | q(x), +forall x . !p(x) +|- +forall x . q(x) +#+end_example + +* =h05q01d= \small{(cont’d)} + +#+begin_example +#check ND + +forall x . p(x) | q(x), forall x . !p(x) |- forall x . q(x) + +1) forall x . p(x) | q(x) premise +2) forall x . !p(x) premise +3) for every xg { + 4) p(xg) | q(xg) by forall_e on 1 + 5) case p(xg) { + 6) !p(xg) by forall_e on 2 + 7) q(xg) by not_e on 5, 6 + } + 8) case q(xg) {} + 9) q(xg) by cases on 4, 5-7, 8-8 +} +10) forall x. q(x) by forall_i on 3-9 +#+end_example + +* Announcements + +- no tutorial next week (Oct 16) (reading week) +- no tutorial the week after (Oct 23) (midterm marking) diff --git a/style.css b/style.css index cb676e4..c460723 100644 --- a/style.css +++ b/style.css @@ -4,36 +4,38 @@ article, aside, footer, header, nav, section { } body { - font-family: FreeSans, sans-serif; - text-transform: lowercase; - line-height: 1.4; + font-family: sans-serif; + line-height: 1.6; padding: 1em; } -main { +nav, main, footer { margin: auto; + max-width: 38rem; } -main > header { - margin-bottom: 1em; +nav { + font-size: 0.84em; } - -#title { - font-size: 2.1em; - font-weight: normal; - margin-bottom: 0; +main { + /* margin-top: 1em; */ + margin-bottom: 3em; + /* margin-top: 2%; */ +} +footer { + border-top: 1px solid #bbb; + padding-top: 1em; } -#title:after { - content: ".eu.org"; - color: #dadada; +footer p { + margin: 0; + font-size: 0.84em; } -#title a { - color: inherit; - border-bottom: 1px solid #eaeaea; + +#hiddentitle { + font-size: 0; } -#title a:hover { - background-color: whitesmoke; - border-bottom-color: #e3e3e3; +h1 { + font-size: 1.5em; } #subtitle { display: inline; @@ -43,8 +45,28 @@ main > header { } a { + color: #295bad; text-decoration: none; - outline: 0; +} +a:hover, a:focus { + transition-property: background; + transition-duration: 0.1s; + background: #f2f8fa; + padding: 0.25em 0; + color: #0745ad; +} +a:active { + color: #a10029; +} +/* +a:active { + color: #06d; + box-shadow: 0 1px 1px #ddd; +} +*/ + +h4 { + margin: 0.75em auto; } article h3 { @@ -52,6 +74,24 @@ article h3 { color: #777; } +.notice { + background-color: #efefef; + text-align: center; + position: relative; +} +.notice::before { + content: "↪"; + position: absolute; + left: 0.5em; + bottom: 0.05em; +} +.notice::after { + content: "↩"; + position: absolute; + right: 0.5em; + bottom: 0.05em; +} + code { font-size: 1.15em; text-transform: none; @@ -67,52 +107,6 @@ table td:last-child { padding-right: 0 } -nav ul { - list-style-type: none; - padding: 0; -} -nav li { - display: inline; -} -nav li:after { - content: "\00a0\00b7"; -} -nav li:last-child:after { - content: ""; -} - -main { - display: grid; - grid-template-columns: auto 32em auto; - grid-column-gap: 1.5em; - grid-row-gap: 1em; -} - -main > h3 { - grid-column: 1; - text-align: right; - font-size: 1em; - font-weight: normal; -} - -main > header, main > section { - grid-column: 2; -} - -main > h3, ul:first-child { - margin-top: 0; - margin-bottom: 0; -} -p:first-child { - margin-top: 0; -} -p:last-child { - margin-bottom: 0; -} - -#publications section { - text-transform: none; -} dl { margin: 0 0 0.5em 0; } @@ -120,14 +114,33 @@ dl:last-child { margin: 0; } dt { - margin-bottom: 0.5em; + margin-bottom: 0.15em; } dd { + font-size: 0.9em; margin-left: 1.5em; + margin-bottom: 0.75em; } -#publications dd, .plinks { +.plinks { font-size: 0.9em; } + +ul, ol { + list-style: none; + padding-left: 1.5em; + position: relative; +} + +li { + margin-bottom: 0.25em; +} + +ul > li::before { + content: '•'; + position: absolute; + left: 0.5em; +} + /* ol { margin: 0; -- 2.20.1