Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 591A211EF74 for <~skeeto/public-inbox@lists.sr.ht>; Sun, 16 Oct 2022 18:30:27 +0000 (UTC) Received: by mail-pg1-f182.google.com with SMTP id l6so8664091pgu.7 for <~skeeto/public-inbox@lists.sr.ht>; Sun, 16 Oct 2022 11:30:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=DUTGL9wu59QKcl7kbl+uTVQ21qJWX8o6XZmTacYbYAM=; b=hvNZea+FRYI8t9wCu/o7zb8kSAWkVYrWxr4IJr4FaqaBKVo4UzkaTqYfQMVc02a1yo +H6D53JsH09QTEfWV1th/SY3JKodMeTxpm4WDyBNWdC1t9ddrimQdfF7t/fEyZUnBVhG g+8+slm8Cd36o9TSafHnYZUfYTkWIFLJgky11sSN8WjpL9BR+9mC4/icLRtfZo33JLFI szCZu0wqO5c5of7vjdVh/ZFTPun30Okpvuo+xCPBF5p4+KMUq4wUDietYDR/YkMynojP gIPitMYiSWoX3o52nwNhwDdiInrwiZglYAoC3rFV5V5IOZ+yVRlvsf0c3hWif6wzNpPE RIGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=DUTGL9wu59QKcl7kbl+uTVQ21qJWX8o6XZmTacYbYAM=; b=SWFUZ4C3BYok93q4LDc29Qtj9BFN5B11hWp/EQ/zQuFfIFX+riTIwFH3VrvQz3xvy/ 4AYOEc/sbUW47Wl1hOYjnsZa7ORB3RzjSSQbJFpad+VICz1i2lEJgcrsEoPVIQ/wqC72 poYxjBMP1PDJeXvBc89mwJeLreRwTwPHzaaR838YOerx5vXlgfN8mGNGBFMc5k7tDyeU //cE6cmuHaSCaHbiZxaKdBHb8R5R+o8UDZ0oGicr9f40gC/MUMQjnUfsLXTHindndvtC Ttp6yO8vyLUFHXT5O3XwukA9xMLnJSn5T7q4sGPUk93SapiRCwO24fRKU0RfvoE3n13/ +AlA== X-Gm-Message-State: ACrzQf0sMyHvIefZZd4IZt/s7F1TuE32r/bmAclDxX5Xeh72FOoMtjPJ 2zpR9v/PLXFCqABYtuhVY1k= X-Google-Smtp-Source: AMsMyM6RE29c/1kBCvz1K0lroiplgWTpBRMNjCzyqA0GP0wqIO8qZE4WPy2RpLyyKMycXBObo2tgag== X-Received: by 2002:a62:1e81:0:b0:563:8689:d295 with SMTP id e123-20020a621e81000000b005638689d295mr8746343pfe.6.1665945026029; Sun, 16 Oct 2022 11:30:26 -0700 (PDT) Received: from ?IPV6:2601:1c0:5a01:d50::9b2a? ([2601:1c0:5a01:d50::9b2a]) by smtp.gmail.com with ESMTPSA id ik11-20020a170902ab0b00b00176dc67df44sm5056524plb.132.2022.10.16.11.30.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 16 Oct 2022 11:30:25 -0700 (PDT) Message-ID: Date: Sun, 16 Oct 2022 11:30:24 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: relationship to model checking To: Christopher Wellons Cc: ~skeeto/public-inbox@lists.sr.ht References: <725c9a46-6fd9-afcc-52de-268a3070eb5d@gmail.com> <20221016153801.fieqzt3ianrujnxd@nullprogram.com> Content-Language: en-US From: Matthew Fernandez In-Reply-To: <20221016153801.fieqzt3ianrujnxd@nullprogram.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 10/16/22 08:38, Christopher Wellons wrote: > There is a growing number of interesting games from the book (Neutron, > Order and Chaos, Splatter, Sequencium, Pennywise, Prophecies) that I'd > like to explore more thoroughly. Do you have recommendations? I assume you mean model checker suggestions, not game suggestions. If I can selfishly plug my own tool, https://github.com/smattr/rumur :) It doesn’t have great docs on the input language, but you can find copies of older Murphi language docs floating around on the internet, e.g. https://www.cs.ubc.ca/~ajh/courses/cpsc513/assign-token/User.Manual. > A couple months ago I showed it's easy to outperform "battle-hardened" > generic hash tables in compiled languages (C++, Go, etc.) since you > usually have so much local knowledge to exploit. I've had similar > results parsing JSON and XML: With a known, fixed schema, a hand-written > parser can be small and very, very fast vs. a generic parsing library. This matches my own experience too. By essentially dropping some feature requirements from a generalized data structure/algorithm, you end up easily outperforming the off-the-shelf options. > Here's my favorite talk on this subject: > > Context is Everything > https://vimeo.com/644068002 Thanks! I’ll check it out! > Compared to a one-size-fits-all hash table or parser, the gap between > generated vs. hand-written model checker is probably small. Also, if the > goal is simply to prove some things about a game, it also probably > doesn't matter whether you get the answer in 1 minute or 10 minutes. The > main benefit would be speeding up testing and validation during > development, after which it matters little. The performance boost could > easily cost more than what you gain from faster testing (e.g. my > decision not to bother with multi-threading). This is an interesting perspective. I guess I naïvely assumed runtime was a critical factor here because it’s usually been a bottleneck for model checking problems for me in the past. I was typically modelling some new hardware functionality whose design was being iterated on at the same time as we were trying to derive proofs. The runtime for some of these models could stretch into days or even weeks. In these cases, even complex optimizations that only yielded a <10% speed up were still often worth it. Having said that, memory usage was also a constant concern. Thanks for your reply! Lots of interesting things for me to ponder :)