James Wilcox's blog
http://jamesrwilcox.com/
James Wilcox's Blog.Teaching Principles
https://jamesrwilcox.com/teaching-principles.html
https://jamesrwilcox.com/teaching-principles.htmlFri, 29 Apr 2022 00:00:00 -0700This living document collects James's Teaching Principles(tm).Exercises on Generalizing the Induction Hypothesis
http://homes.cs.washington.edu/~jrw12/InductionExercises.html
http://homes.cs.washington.edu/~jrw12/InductionExercises.htmlTue, 21 Feb 2017 00:00:00 -0700This post collects several Coq exercises on generalizing
the induction hypothesis.A Port of the Proof of Peterson's Algorithm to Dafny
http://homes.cs.washington.edu/~jrw12/Peterson.dfy.html
http://homes.cs.washington.edu/~jrw12/Peterson.dfy.htmlTue, 10 Jan 2017 00:00:00 -0700This code-only post is a port of the proof of Peterson's
Algorithm to Dafny. It also serves as a good example of how to reason
about concurrent systems in Dafny, essentially by writing a thread
scheduler.How to build a simple system in Verdi
http://homes.cs.washington.edu/~jrw12/Counter.html
http://homes.cs.washington.edu/~jrw12/Counter.htmlSun, 24 Apr 2016 00:00:00 -0700In this long-awaited post, we'll show how to implement and verify
a simple distributed system using network semantics.A Proof of Peterson's Algorithm
http://homes.cs.washington.edu/~jrw12/SharedMem.html
http://homes.cs.washington.edu/~jrw12/SharedMem.htmlFri, 8 May 2015 00:00:00 -0700In this post, we take a break from distributed systems to
look at shared memory systems. As a case study, we give a proof that
Peterson's algorithm provides mutual exclusion.Network Semantics for Verifying Distributed Systems
http://homes.cs.washington.edu/~jrw12/network-semantics.html
http://homes.cs.washington.edu/~jrw12/network-semantics.htmlThu, 16 Apr 2015 00:00:00 -0700 This is the first post in a series on Verdi. In this
post, we'll get our feet wet by defining a formal model of how
distributed systems execute on the network.Reasoning about Cardinalities of Sums and Products
http://homes.cs.washington.edu/~jrw12/more-cardinality.html
http://homes.cs.washington.edu/~jrw12/more-cardinality.htmlMon, 20 Oct 2014 00:00:00 -0700In this short, code-heavy post, we extend some of the
work from a previous post to reason about the cardinalities of sums
and products.Dependent Case Analysis in Coq without Axioms
http://homes.cs.washington.edu/~jrw12/dep-destruct.html
http://homes.cs.washington.edu/~jrw12/dep-destruct.htmlSun, 14 Sep 2014 00:00:00 -0700 This post shows how to get around the limitations of the
destruct tactic when doing case analysis on dependent types, without
resorting to the dependent destruction tactic, which relies on
additional axioms."run" + "time" = ???
http://homes.cs.washington.edu/~jrw12/runtime.html
http://homes.cs.washington.edu/~jrw12/runtime.htmlThu, 04 Sep 2014 00:00:00 -0700 This brief post records Mike's description of the three
ways of combining the words "run" and "time" in computer science
writing."More Sums than Differences" Sets, Part 2: Counting MSTD Sets
http://homes.cs.washington.edu/~jrw12/mstd2.html
http://homes.cs.washington.edu/~jrw12/mstd2.htmlThu, 12 Jun 2014 00:00:00 -0700 This is the (much delayed) second post in a series on
More Sums than Difference Sets. In this post, we'll take a first crack
at the question, "How many MSTD sets are there?" To do so, we'll write
a straightforward C program that counts MSTD sets. Then we'll run it
to count MSTD sets and benchmark its performance.Tail Recursion Modulo cons
http://homes.cs.washington.edu/~jrw12/tail-mod-cons.html
http://homes.cs.washington.edu/~jrw12/tail-mod-cons.htmlThu, 10 Apr 2014 00:00:00 -0700Tail recursion has come up in a few conversations this
week. This post explores a generalization of tail call optimization
that I wasn't aware of until Doug described it to me."More Sums than Differences" Sets, Part 1: A puzzle
http://homes.cs.washington.edu/~jrw12/mstd1.html
http://homes.cs.washington.edu/~jrw12/mstd1.htmlMon, 03 Mar 2014 00:00:00 -0800This is the first post in a series on "More Sums than
Differences" Sets. In this post, we'll get our terminology straight
and ask a lot of questions.Easy access to the off-campus proxy
http://homes.cs.washington.edu/~jrw12/proxy-js.html
http://homes.cs.washington.edu/~jrw12/proxy-js.htmlTue, 31 Dec 2013 00:00:00 -0800I use the UW proxy to access the ACM digital library from
off campus, but it's annoying to type the proxy URL every time I click
a link to a new paper. Here are two ways to make life
easier.