Provavelmente, você nunca terá que provar declarações matemáticas em sua área de trabalho, mas aprender a escrever provas matemáticas ensinará você a escrever de uma maneira que é: inequívoca e convincente Inequívoca e convincente não é o mesmo que clara e persuasiva — o que abordarei mais tarde. Ao escrever provas matemáticas, sua escrita deve ter uma "verdade subjacente" que segue as "regras do jogo" (quais transformações e implicações são permitidas). No entanto, há alguma latitude em como exatamente você "expressa" a verdade subjacente — uma vez que você não está fazendo matemática computacional, você usa inglês em vez de símbolos inteiramente. No entanto, as regras do jogo restringem fortemente o que você pode escrever. Como a matemática, cada domínio técnico (por exemplo, engenharia de software) tem "verdades subjacentes" e "regras do jogo". Autores inexperientes produzem escritos relacionados, mas não atrelados às verdades subjacentes e regras do jogo em seu domínio. Por exemplo, considere a frase: "Se aumentarmos o tempo de bloco, então a segurança da blockchain aumenta porque mais nós podem alcançar consenso." "Tempo de bloco", "quorum" e "segurança" são verdades subjacentes, mas a declaração de relacionamento segue as regras do jogo? A declaração soa persuasiva, mas é inequívoca e convincente? Se você tem experiência com provas matemáticas, você seria capaz de desvendar as suposições subjacentes que a declaração está fazendo: - o consenso é mais fácil de alcançar quando se tem mais tempo - blockchains são mais seguras quando têm um consenso confiável Mas essas não são as suposições precisas: a suposição precisa é que, dado mais tempo, o consenso é mais provável. Segue-se que o autor está assumindo que, à medida que o tempo se aproxima do infinito, a probabilidade de consenso se aproxima de 1. Dito dessa forma, parece uma suposição razoável? Quando lida dessa maneira, um contraexemplo se torna mais óbvio: e se muitos nós (intencionalmente ou não) ficarem permanentemente offline? Portanto, podemos ver que "Se aumentarmos o tempo de bloco, então a segurança da blockchain aumenta porque mais nós podem alcançar consenso" reflete algumas "verdades subjacentes" e segue algumas "regras do jogo", mas também está fazendo algumas suposições importantes e não declaradas (se essas suposições fossem declaradas no contexto, tudo bem, mas não quero desviar este exemplo com essa nuance). Portanto, a declaração "Se aumentarmos o tempo de bloco, então a segurança da blockchain aumenta porque mais nós podem alcançar consenso" é clara e persuasiva porque cada um dos termos que usa é bem compreendido e não diz nada obviamente errado. No entanto, não é inequívoca e convincente porque faz suposições não declaradas sobre o comportamento dos nós. Aqui está uma versão mais convincente e inequívoca: "Assumindo que os atrasos de rede são a única coisa que impede o consenso, então intervalos de bloco mais longos melhoram a probabilidade de consenso." Porque a nova afirmação tem um escopo reduzido (não faz nenhuma afirmação ampla sobre "segurança" e comportamento esperado dos nós), é menos inequívoca (mais precisa) e mais convincente porque segue as regras do jogo (ou seja, a relação entre latência de rede e tempo de bloco)....